From 14d8e621bb71dc5196a38200785db223c54a0ab3 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 3 Jan 2023 19:05:41 +0530 Subject: [PATCH 001/355] refactor: revamp process loss feature & added tab breaks (cherry picked from commit ae039777f90c125a83b8f02e5b1c24b3f3ca3ef3) --- erpnext/manufacturing/doctype/bom/bom.js | 52 +++++---- erpnext/manufacturing/doctype/bom/bom.json | 109 +++++++++++++----- erpnext/manufacturing/doctype/bom/bom.py | 36 ++---- erpnext/manufacturing/doctype/bom/test_bom.py | 7 +- .../bom_scrap_item/bom_scrap_item.json | 10 +- .../doctype/work_order/test_work_order.py | 2 +- .../doctype/work_order/work_order.json | 43 +++++-- .../doctype/work_order/work_order.py | 48 ++++---- .../doctype/stock_entry/stock_entry.json | 107 ++++++++++++----- .../stock/doctype/stock_entry/stock_entry.py | 68 +++++------ .../stock_entry_detail.json | 9 +- 11 files changed, 282 insertions(+), 209 deletions(-) diff --git a/erpnext/manufacturing/doctype/bom/bom.js b/erpnext/manufacturing/doctype/bom/bom.js index ecad41fe7b88..4dd8205a70c3 100644 --- a/erpnext/manufacturing/doctype/bom/bom.js +++ b/erpnext/manufacturing/doctype/bom/bom.js @@ -4,7 +4,7 @@ frappe.provide("erpnext.bom"); frappe.ui.form.on("BOM", { - setup: function(frm) { + setup(frm) { frm.custom_make_buttons = { 'Work Order': 'Work Order', 'Quality Inspection': 'Quality Inspection' @@ -65,11 +65,11 @@ frappe.ui.form.on("BOM", { }); }, - onload_post_render: function(frm) { + onload_post_render(frm) { frm.get_field("items").grid.set_multiple_add("item_code", "qty"); }, - refresh: function(frm) { + refresh(frm) { frm.toggle_enable("item", frm.doc.__islocal); frm.set_indicator_formatter('item_code', @@ -152,7 +152,7 @@ frappe.ui.form.on("BOM", { } }, - make_work_order: function(frm) { + make_work_order(frm) { frm.events.setup_variant_prompt(frm, "Work Order", (frm, item, data, variant_items) => { frappe.call({ method: "erpnext.manufacturing.doctype.work_order.work_order.make_work_order", @@ -164,7 +164,7 @@ frappe.ui.form.on("BOM", { variant_items: variant_items }, freeze: true, - callback: function(r) { + callback(r) { if(r.message) { let doc = frappe.model.sync(r.message)[0]; frappe.set_route("Form", doc.doctype, doc.name); @@ -174,7 +174,7 @@ frappe.ui.form.on("BOM", { }); }, - make_variant_bom: function(frm) { + make_variant_bom(frm) { frm.events.setup_variant_prompt(frm, "Variant BOM", (frm, item, data, variant_items) => { frappe.call({ method: "erpnext.manufacturing.doctype.bom.bom.make_variant_bom", @@ -185,7 +185,7 @@ frappe.ui.form.on("BOM", { variant_items: variant_items }, freeze: true, - callback: function(r) { + callback(r) { if(r.message) { let doc = frappe.model.sync(r.message)[0]; frappe.set_route("Form", doc.doctype, doc.name); @@ -195,7 +195,7 @@ frappe.ui.form.on("BOM", { }, true); }, - setup_variant_prompt: function(frm, title, callback, skip_qty_field) { + setup_variant_prompt(frm, title, callback, skip_qty_field) { const fields = []; if (frm.doc.has_variants) { @@ -205,7 +205,7 @@ frappe.ui.form.on("BOM", { fieldname: 'item', options: "Item", reqd: 1, - get_query: function() { + get_query() { return { query: "erpnext.controllers.queries.item_query", filters: { @@ -273,7 +273,7 @@ frappe.ui.form.on("BOM", { fieldtype: "Link", in_list_view: 1, reqd: 1, - get_query: function(data) { + get_query(data) { if (!data.item_code) { frappe.throw(__("Select template item")); } @@ -308,7 +308,7 @@ frappe.ui.form.on("BOM", { ], in_place_edit: true, data: [], - get_data: function () { + get_data () { return []; }, }); @@ -343,14 +343,14 @@ frappe.ui.form.on("BOM", { } }, - make_quality_inspection: function(frm) { + make_quality_inspection(frm) { frappe.model.open_mapped_doc({ method: "erpnext.stock.doctype.quality_inspection.quality_inspection.make_quality_inspection", frm: frm }) }, - update_cost: function(frm, save_doc=false) { + update_cost(frm, save_doc=false) { return frappe.call({ doc: frm.doc, method: "update_cost", @@ -360,26 +360,26 @@ frappe.ui.form.on("BOM", { save: save_doc, from_child_bom: false }, - callback: function(r) { + callback(r) { refresh_field("items"); if(!r.exc) frm.refresh_fields(); } }); }, - rm_cost_as_per: function(frm) { + rm_cost_as_per(frm) { if (in_list(["Valuation Rate", "Last Purchase Rate"], frm.doc.rm_cost_as_per)) { frm.set_value("plc_conversion_rate", 1.0); } }, - routing: function(frm) { + routing(frm) { if (frm.doc.routing) { frappe.call({ doc: frm.doc, method: "get_routing", freeze: true, - callback: function(r) { + callback(r) { if (!r.exc) { frm.refresh_fields(); erpnext.bom.calculate_op_cost(frm.doc); @@ -388,6 +388,16 @@ frappe.ui.form.on("BOM", { } }); } + }, + + process_loss_percentage(frm) { + let qty = 0.0 + if (frm.doc.process_loss_percentage) { + qty = (frm.doc.quantity * frm.doc.process_loss_percentage) / 100; + } + + frm.set_value("process_loss_qty", qty); + frm.set_value("add_process_loss_cost_in_fg", qty ? 1: 0); } }); @@ -479,10 +489,6 @@ var get_bom_material_detail = function(doc, cdt, cdn, scrap_items) { }, callback: function(r) { d = locals[cdt][cdn]; - if (d.is_process_loss) { - r.message.rate = 0; - r.message.base_rate = 0; - } $.extend(d, r.message); refresh_field("items"); @@ -717,10 +723,6 @@ frappe.tour['BOM'] = [ frappe.ui.form.on("BOM Scrap Item", { item_code(frm, cdt, cdn) { const { item_code } = locals[cdt][cdn]; - if (item_code === frm.doc.item) { - locals[cdt][cdn].is_process_loss = 1; - trigger_process_loss_qty_prompt(frm, cdt, cdn, item_code); - } }, }); diff --git a/erpnext/manufacturing/doctype/bom/bom.json b/erpnext/manufacturing/doctype/bom/bom.json index 0b4419694002..c31b69f3dc59 100644 --- a/erpnext/manufacturing/doctype/bom/bom.json +++ b/erpnext/manufacturing/doctype/bom/bom.json @@ -6,6 +6,7 @@ "document_type": "Setup", "engine": "InnoDB", "field_order": [ + "production_item_tab", "item", "company", "item_name", @@ -19,14 +20,15 @@ "quantity", "image", "currency_detail", - "currency", - "conversion_rate", - "column_break_12", "rm_cost_as_per", "buying_price_list", "price_list_currency", "plc_conversion_rate", + "column_break_ivyw", + "currency", + "conversion_rate", "section_break_21", + "operations_section_section", "with_operations", "column_break_23", "transfer_material_against", @@ -34,13 +36,14 @@ "operations_section", "operations", "materials_section", - "inspection_required", - "quality_inspection_template", - "column_break_31", - "section_break_33", "items", "scrap_section", + "scrap_items_section", "scrap_items", + "process_loss_section", + "process_loss_percentage", + "column_break_ssj2", + "process_loss_qty", "costing", "operating_cost", "raw_material_cost", @@ -52,10 +55,14 @@ "column_break_26", "total_cost", "base_total_cost", - "section_break_25", + "more_info_tab", "description", "column_break_27", "has_variants", + "quality_inspection_section_break", + "inspection_required", + "column_break_dxp7", + "quality_inspection_template", "section_break0", "exploded_items", "website_section", @@ -68,7 +75,8 @@ "show_items", "show_operations", "web_long_description", - "amended_from" + "amended_from", + "connections_tab" ], "fields": [ { @@ -183,7 +191,7 @@ { "fieldname": "currency_detail", "fieldtype": "Section Break", - "label": "Currency and Price List" + "label": "Cost Configuration" }, { "fieldname": "company", @@ -208,10 +216,6 @@ "precision": "9", "reqd": 1 }, - { - "fieldname": "column_break_12", - "fieldtype": "Column Break" - }, { "fieldname": "currency", "fieldtype": "Link", @@ -261,7 +265,7 @@ { "fieldname": "materials_section", "fieldtype": "Section Break", - "label": "Materials", + "label": "Raw Materials", "oldfieldtype": "Section Break" }, { @@ -276,18 +280,18 @@ { "collapsible": 1, "fieldname": "scrap_section", - "fieldtype": "Section Break", - "label": "Scrap" + "fieldtype": "Tab Break", + "label": "Scrap & Process Loss" }, { "fieldname": "scrap_items", "fieldtype": "Table", - "label": "Scrap Items", + "label": "Items", "options": "BOM Scrap Item" }, { "fieldname": "costing", - "fieldtype": "Section Break", + "fieldtype": "Tab Break", "label": "Costing", "oldfieldtype": "Section Break" }, @@ -379,10 +383,6 @@ "print_hide": 1, "read_only": 1 }, - { - "fieldname": "section_break_25", - "fieldtype": "Section Break" - }, { "fetch_from": "item.description", "fieldname": "description", @@ -478,8 +478,8 @@ }, { "fieldname": "section_break_21", - "fieldtype": "Section Break", - "label": "Operations" + "fieldtype": "Tab Break", + "label": "Operations & Materials" }, { "fieldname": "column_break_23", @@ -511,6 +511,7 @@ "fetch_from": "item.has_variants", "fieldname": "has_variants", "fieldtype": "Check", + "hidden": 1, "in_list_view": 1, "label": "Has Variants", "no_copy": 1, @@ -518,13 +519,63 @@ "read_only": 1 }, { - "fieldname": "column_break_31", + "fieldname": "connections_tab", + "fieldtype": "Tab Break", + "label": "Connections", + "show_dashboard": 1 + }, + { + "fieldname": "operations_section_section", + "fieldtype": "Section Break", + "label": "Operations" + }, + { + "fieldname": "process_loss_section", + "fieldtype": "Section Break", + "label": "Process Loss" + }, + { + "fieldname": "process_loss_percentage", + "fieldtype": "Percent", + "label": "% Process Loss" + }, + { + "fieldname": "process_loss_qty", + "fieldtype": "Float", + "label": "Process Loss Qty", + "read_only": 1 + }, + { + "fieldname": "column_break_ssj2", + "fieldtype": "Column Break" + }, + { + "fieldname": "more_info_tab", + "fieldtype": "Tab Break", + "label": "More Info" + }, + { + "fieldname": "column_break_dxp7", + "fieldtype": "Column Break" + }, + { + "fieldname": "quality_inspection_section_break", + "fieldtype": "Section Break", + "label": "Quality Inspection" + }, + { + "fieldname": "production_item_tab", + "fieldtype": "Tab Break", + "label": "Production Item" + }, + { + "fieldname": "column_break_ivyw", "fieldtype": "Column Break" }, { - "fieldname": "section_break_33", + "fieldname": "scrap_items_section", "fieldtype": "Section Break", - "hide_border": 1 + "label": "Scrap Items" } ], "icon": "fa fa-sitemap", @@ -532,7 +583,7 @@ "image_field": "image", "is_submittable": 1, "links": [], - "modified": "2022-01-30 21:27:54.727298", + "modified": "2023-01-03 18:42:27.732107", "modified_by": "Administrator", "module": "Manufacturing", "name": "BOM", diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py index ca4f63df7721..31f73963c846 100644 --- a/erpnext/manufacturing/doctype/bom/bom.py +++ b/erpnext/manufacturing/doctype/bom/bom.py @@ -233,6 +233,7 @@ def get_routing(self): "sequence_id", "operation", "workstation", + "workstation_type", "description", "time_in_mins", "batch_size", @@ -877,35 +878,14 @@ def get_tree_representation(self) -> BOMTree: return BOMTree(self.name) def validate_scrap_items(self): - for item in self.scrap_items: - msg = "" - if item.item_code == self.item and not item.is_process_loss: - msg = _( - "Scrap/Loss Item: {0} should have Is Process Loss checked as it is the same as the item to be manufactured or repacked." - ).format(frappe.bold(item.item_code)) - elif item.item_code != self.item and item.is_process_loss: - msg = _( - "Scrap/Loss Item: {0} should not have Is Process Loss checked as it is different from the item to be manufactured or repacked" - ).format(frappe.bold(item.item_code)) - - must_be_whole_number = frappe.get_value("UOM", item.stock_uom, "must_be_whole_number") - if item.is_process_loss and must_be_whole_number: - msg = _( - "Item: {0} with Stock UOM: {1} cannot be a Scrap/Loss Item as {1} is a whole UOM." - ).format(frappe.bold(item.item_code), frappe.bold(item.stock_uom)) - - if item.is_process_loss and (item.stock_qty >= self.quantity): - msg = _("Scrap/Loss Item: {0} should have Qty less than finished goods Quantity.").format( - frappe.bold(item.item_code) - ) + must_be_whole_number = frappe.get_value("UOM", self.uom, "must_be_whole_number") - if item.is_process_loss and (item.rate > 0): - msg = _( - "Scrap/Loss Item: {0} should have Rate set to 0 because Is Process Loss is checked." - ).format(frappe.bold(item.item_code)) + if self.process_loss_percentage and self.process_loss_percentage > 100: + frappe.throw(_("Process Loss Percentage cannot be greater than 100")) - if msg: - frappe.throw(msg, title=_("Note")) + if self.process_loss_qty and must_be_whole_number and self.process_loss_qty % 1 != 0: + msg = f"Item: {frappe.bold(self.item)} with Stock UOM: {frappe.bold(self.uom)} can't have fractional process loss qty as UOM {frappe.bold(self.uom)} is a whole Number." + frappe.throw(msg, title=_("Invalid Process Loss Configuration")) def get_bom_item_rate(args, bom_doc): @@ -1053,7 +1033,7 @@ def get_bom_items_as_dict( query = query.format( table="BOM Scrap Item", where_conditions="", - select_columns=", item.description, is_process_loss", + select_columns=", item.description", is_stock_item=is_stock_item, qty_field="stock_qty", ) diff --git a/erpnext/manufacturing/doctype/bom/test_bom.py b/erpnext/manufacturing/doctype/bom/test_bom.py index e34ac12cd236..989861717e47 100644 --- a/erpnext/manufacturing/doctype/bom/test_bom.py +++ b/erpnext/manufacturing/doctype/bom/test_bom.py @@ -409,7 +409,7 @@ def test_bom_with_process_loss_item(self): self.assertRaises(frappe.ValidationError, bom_doc.submit) bom_doc = create_bom_with_process_loss_item( - fg_item_non_whole, bom_item, scrap_qty=0.25, scrap_rate=0, is_process_loss=0 + fg_item_non_whole, bom_item, scrap_qty=0.25, scrap_rate=0 ) # FG Items in Scrap/Loss Table should have Is Process Loss set self.assertRaises(frappe.ValidationError, bom_doc.submit) @@ -743,9 +743,7 @@ def reset_item_valuation_rate(item_code, warehouse_list=None, qty=None, rate=Non create_stock_reconciliation(item_code=item_code, warehouse=warehouse, qty=qty, rate=rate) -def create_bom_with_process_loss_item( - fg_item, bom_item, scrap_qty, scrap_rate, fg_qty=2, is_process_loss=1 -): +def create_bom_with_process_loss_item(fg_item, bom_item, scrap_qty, scrap_rate, fg_qty=2): bom_doc = frappe.new_doc("BOM") bom_doc.item = fg_item.item_code bom_doc.quantity = fg_qty @@ -768,7 +766,6 @@ def create_bom_with_process_loss_item( "uom": fg_item.stock_uom, "stock_uom": fg_item.stock_uom, "rate": scrap_rate, - "is_process_loss": is_process_loss, }, ) bom_doc.currency = "INR" diff --git a/erpnext/manufacturing/doctype/bom_scrap_item/bom_scrap_item.json b/erpnext/manufacturing/doctype/bom_scrap_item/bom_scrap_item.json index 7018082e4027..b2ef19b20f05 100644 --- a/erpnext/manufacturing/doctype/bom_scrap_item/bom_scrap_item.json +++ b/erpnext/manufacturing/doctype/bom_scrap_item/bom_scrap_item.json @@ -8,7 +8,6 @@ "item_code", "column_break_2", "item_name", - "is_process_loss", "quantity_and_rate", "stock_qty", "rate", @@ -89,17 +88,11 @@ { "fieldname": "column_break_2", "fieldtype": "Column Break" - }, - { - "default": "0", - "fieldname": "is_process_loss", - "fieldtype": "Check", - "label": "Is Process Loss" } ], "istable": 1, "links": [], - "modified": "2021-06-22 16:46:12.153311", + "modified": "2023-01-03 14:19:28.460965", "modified_by": "Administrator", "module": "Manufacturing", "name": "BOM Scrap Item", @@ -108,5 +101,6 @@ "quick_entry": 1, "sort_field": "modified", "sort_order": "DESC", + "states": [], "track_changes": 1 } \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/work_order/test_work_order.py b/erpnext/manufacturing/doctype/work_order/test_work_order.py index f568264c9081..6c7483ca7d28 100644 --- a/erpnext/manufacturing/doctype/work_order/test_work_order.py +++ b/erpnext/manufacturing/doctype/work_order/test_work_order.py @@ -859,7 +859,7 @@ def test_wo_completion_with_pl_bom(self): bom_no = f"BOM-{fg_item_non_whole.item_code}-001" if not frappe.db.exists("BOM", bom_no): bom_doc = create_bom_with_process_loss_item( - fg_item_non_whole, bom_item, scrap_qty=scrap_qty, scrap_rate=0, fg_qty=1, is_process_loss=1 + fg_item_non_whole, bom_item, scrap_qty=scrap_qty, scrap_rate=0, fg_qty=1 ) bom_doc.submit() diff --git a/erpnext/manufacturing/doctype/work_order/work_order.json b/erpnext/manufacturing/doctype/work_order/work_order.json index 9452a63d70b7..25e16d633764 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.json +++ b/erpnext/manufacturing/doctype/work_order/work_order.json @@ -14,13 +14,13 @@ "item_name", "image", "bom_no", + "sales_order", "column_break1", "company", "qty", "material_transferred_for_manufacturing", "produced_qty", "process_loss_qty", - "sales_order", "project", "serial_no_and_batch_for_finished_good_section", "has_serial_no", @@ -28,6 +28,7 @@ "column_break_17", "serial_no", "batch_size", + "work_order_configuration", "settings_section", "allow_alternative_item", "use_multi_level_bom", @@ -42,7 +43,11 @@ "fg_warehouse", "scrap_warehouse", "required_items_section", + "materials_and_operations_tab", "required_items", + "operations_section", + "operations", + "transfer_material_against", "time", "planned_start_date", "planned_end_date", @@ -51,9 +56,6 @@ "actual_start_date", "actual_end_date", "lead_time", - "operations_section", - "transfer_material_against", - "operations", "section_break_22", "planned_operating_cost", "actual_operating_cost", @@ -72,12 +74,14 @@ "production_plan_item", "production_plan_sub_assembly_item", "product_bundle_item", - "amended_from" + "amended_from", + "connections_tab" ], "fields": [ { "fieldname": "item", - "fieldtype": "Section Break", + "fieldtype": "Tab Break", + "label": "Production Item", "options": "fa fa-gift" }, { @@ -236,7 +240,7 @@ { "fieldname": "warehouses", "fieldtype": "Section Break", - "label": "Warehouses", + "label": "Warehouse", "options": "fa fa-building" }, { @@ -390,8 +394,8 @@ { "collapsible": 1, "fieldname": "more_info", - "fieldtype": "Section Break", - "label": "More Information", + "fieldtype": "Tab Break", + "label": "More Info", "options": "fa fa-file-text" }, { @@ -474,8 +478,7 @@ }, { "fieldname": "settings_section", - "fieldtype": "Section Break", - "label": "Settings" + "fieldtype": "Section Break" }, { "fieldname": "column_break_18", @@ -568,6 +571,22 @@ "no_copy": 1, "non_negative": 1, "read_only": 1 + }, + { + "fieldname": "connections_tab", + "fieldtype": "Tab Break", + "label": "Connections", + "show_dashboard": 1 + }, + { + "fieldname": "work_order_configuration", + "fieldtype": "Tab Break", + "label": "Configuration" + }, + { + "fieldname": "materials_and_operations_tab", + "fieldtype": "Tab Break", + "label": "Materials & Operations" } ], "icon": "fa fa-cogs", @@ -575,7 +594,7 @@ "image_field": "image", "is_submittable": 1, "links": [], - "modified": "2022-01-24 21:18:12.160114", + "modified": "2023-01-03 14:16:35.427731", "modified_by": "Administrator", "module": "Manufacturing", "name": "Work Order", diff --git a/erpnext/manufacturing/doctype/work_order/work_order.py b/erpnext/manufacturing/doctype/work_order/work_order.py index 52753a092d4e..2b30641ff3f3 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.py +++ b/erpnext/manufacturing/doctype/work_order/work_order.py @@ -285,14 +285,7 @@ def update_work_order_qty(self): ): continue - qty = flt( - frappe.db.sql( - """select sum(fg_completed_qty) - from `tabStock Entry` where work_order=%s and docstatus=1 - and purpose=%s""", - (self.name, purpose), - )[0][0] - ) + qty = self.get_transferred_or_manufactured_qty(purpose) completed_qty = self.qty + (allowance_percentage / 100 * self.qty) if qty > completed_qty: @@ -314,26 +307,27 @@ def update_work_order_qty(self): if self.production_plan: self.update_production_plan_status() - def set_process_loss_qty(self): - process_loss_qty = flt( - frappe.db.sql( - """ - SELECT sum(qty) FROM `tabStock Entry Detail` - WHERE - is_process_loss=1 - AND parent IN ( - SELECT name FROM `tabStock Entry` - WHERE - work_order=%s - AND purpose='Manufacture' - AND docstatus=1 - ) - """, - (self.name,), - )[0][0] + def get_transferred_or_manufactured_qty(self, purpose): + table = frappe.qb.DocType("Stock Entry") + query = ( + frappe.qb.from_(table) + .select(Sum(table.fg_completed_qty)) + .where((table.work_order == self.name) & (table.docstatus == 1) & (table.purpose == purpose)) ) - if process_loss_qty is not None: - self.db_set("process_loss_qty", process_loss_qty) + + return flt(query.run()[0][0]) + + def set_process_loss_qty(self): + table = frappe.qb.DocType("Stock Entry") + process_loss_qty = ( + frappe.qb.from_(table) + .select(Sum(table.process_loss_qty)) + .where( + (table.work_order == self.name) & (table.purpose == "Manufacture") & (table.docstatus == 1) + ) + ).run()[0][0] + + self.db_set("process_loss_qty", flt(process_loss_qty)) def update_production_plan_status(self): production_plan = frappe.get_doc("Production Plan", self.production_plan) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.json b/erpnext/stock/doctype/stock_entry/stock_entry.json index 7e9420d50350..9c0f1fc03f48 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.json +++ b/erpnext/stock/doctype/stock_entry/stock_entry.json @@ -7,7 +7,7 @@ "document_type": "Document", "engine": "InnoDB", "field_order": [ - "items_section", + "stock_entry_details_tab", "naming_series", "stock_entry_type", "outgoing_stock_entry", @@ -26,15 +26,20 @@ "posting_time", "set_posting_time", "inspection_required", - "from_bom", "apply_putaway_rule", - "sb1", + "items_tab", + "bom_info_section", + "from_bom", + "use_multi_level_bom", "bom_no", - "fg_completed_qty", "cb1", - "use_multi_level_bom", + "fg_completed_qty", "get_items", - "section_break_12", + "section_break_7qsm", + "process_loss_percentage", + "column_break_e92r", + "process_loss_qty", + "section_break_jwgn", "from_warehouse", "source_warehouse_address", "source_address_display", @@ -44,6 +49,7 @@ "target_address_display", "sb0", "scan_barcode", + "items_section", "items", "get_stock_and_rate", "section_break_19", @@ -54,6 +60,7 @@ "additional_costs_section", "additional_costs", "total_additional_costs", + "supplier_info_tab", "contact_section", "supplier", "supplier_name", @@ -61,7 +68,7 @@ "address_display", "accounting_dimensions_section", "project", - "dimension_col_break", + "other_info_tab", "printing_settings", "select_print_heading", "print_settings_col_break", @@ -78,11 +85,6 @@ "is_return" ], "fields": [ - { - "fieldname": "items_section", - "fieldtype": "Section Break", - "oldfieldtype": "Section Break" - }, { "fieldname": "naming_series", "fieldtype": "Select", @@ -236,17 +238,12 @@ }, { "default": "0", - "depends_on": "eval:in_list([\"Material Issue\", \"Material Transfer\", \"Manufacture\", \"Repack\", \t\t\t\t\t\"Send to Subcontractor\", \"Material Transfer for Manufacture\", \"Material Consumption for Manufacture\"], doc.purpose)", + "depends_on": "eval:in_list([\"Material Issue\", \"Material Transfer\", \"Manufacture\", \"Repack\", \"Send to Subcontractor\", \"Material Transfer for Manufacture\", \"Material Consumption for Manufacture\"], doc.purpose)", "fieldname": "from_bom", "fieldtype": "Check", "label": "From BOM", "print_hide": 1 }, - { - "depends_on": "eval: doc.from_bom && (doc.purpose!==\"Sales Return\" && doc.purpose!==\"Purchase Return\")", - "fieldname": "sb1", - "fieldtype": "Section Break" - }, { "depends_on": "from_bom", "fieldname": "bom_no", @@ -285,10 +282,6 @@ "oldfieldtype": "Button", "print_hide": 1 }, - { - "fieldname": "section_break_12", - "fieldtype": "Section Break" - }, { "description": "Sets 'Source Warehouse' in each row of the items table.", "fieldname": "from_warehouse", @@ -411,7 +404,7 @@ "collapsible": 1, "collapsible_depends_on": "total_additional_costs", "fieldname": "additional_costs_section", - "fieldtype": "Section Break", + "fieldtype": "Tab Break", "label": "Additional Costs" }, { @@ -576,13 +569,9 @@ { "collapsible": 1, "fieldname": "accounting_dimensions_section", - "fieldtype": "Section Break", + "fieldtype": "Tab Break", "label": "Accounting Dimensions" }, - { - "fieldname": "dimension_col_break", - "fieldtype": "Column Break" - }, { "fieldname": "pick_list", "fieldtype": "Link", @@ -621,6 +610,66 @@ "no_copy": 1, "print_hide": 1, "read_only": 1 + }, + { + "fieldname": "items_tab", + "fieldtype": "Tab Break", + "label": "Items" + }, + { + "fieldname": "bom_info_section", + "fieldtype": "Section Break", + "label": "BOM Info" + }, + { + "collapsible": 1, + "fieldname": "section_break_jwgn", + "fieldtype": "Section Break", + "label": "Default Warehouse" + }, + { + "fieldname": "other_info_tab", + "fieldtype": "Tab Break", + "label": "Other Info" + }, + { + "fieldname": "supplier_info_tab", + "fieldtype": "Tab Break", + "label": "Supplier Info" + }, + { + "fieldname": "stock_entry_details_tab", + "fieldtype": "Tab Break", + "label": "Details", + "oldfieldtype": "Section Break" + }, + { + "fieldname": "section_break_7qsm", + "fieldtype": "Section Break" + }, + { + "depends_on": "process_loss_percentage", + "fieldname": "process_loss_qty", + "fieldtype": "Float", + "label": "Process Loss Qty", + "read_only": 1 + }, + { + "fieldname": "column_break_e92r", + "fieldtype": "Column Break" + }, + { + "depends_on": "eval:doc.from_bom && doc.fg_completed_qty", + "fetch_from": "bom_no.process_loss_percentage", + "fetch_if_empty": 1, + "fieldname": "process_loss_percentage", + "fieldtype": "Percent", + "label": "% Process Loss" + }, + { + "fieldname": "items_section", + "fieldtype": "Section Break", + "label": "Items" } ], "icon": "fa fa-file-text", @@ -628,7 +677,7 @@ "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], - "modified": "2022-10-07 14:39:51.943770", + "modified": "2023-01-03 16:02:50.741816", "modified_by": "Administrator", "module": "Stock", "name": "Stock Entry", diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index fc3a50ededbc..0342210eb961 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -116,6 +116,7 @@ def validate(self): self.validate_warehouse() self.validate_work_order() self.validate_bom() + self.set_process_loss_qty() self.validate_purchase_order() self.validate_subcontracting_order() @@ -126,7 +127,7 @@ def validate(self): self.validate_with_material_request() self.validate_batch() self.validate_inspection() - # self.validate_fg_completed_qty() + self.validate_fg_completed_qty() self.validate_difference_account() self.set_job_card_data() self.set_purpose_for_stock_entry() @@ -388,11 +389,20 @@ def validate_fg_completed_qty(self): item_wise_qty = {} if self.purpose == "Manufacture" and self.work_order: for d in self.items: - if d.is_finished_item or d.is_process_loss: + if d.is_finished_item: item_wise_qty.setdefault(d.item_code, []).append(d.qty) + precision = frappe.get_precision("Stock Entry Detail", "qty") for item_code, qty_list in item_wise_qty.items(): - total = flt(sum(qty_list), frappe.get_precision("Stock Entry Detail", "qty")) + total = flt(sum(qty_list), precision) + + if (self.fg_completed_qty - total) > 0: + self.process_loss_qty = flt(self.fg_completed_qty - total, precision) + self.process_loss_percentage = flt(self.process_loss_qty * 100 / self.fg_completed_qty) + + if self.process_loss_qty: + total += flt(self.process_loss_qty, precision) + if self.fg_completed_qty != total: frappe.throw( _("The finished product {0} quantity {1} and For Quantity {2} cannot be different").format( @@ -471,7 +481,7 @@ def validate_warehouse(self): if self.purpose == "Manufacture": if validate_for_manufacture: - if d.is_finished_item or d.is_scrap_item or d.is_process_loss: + if d.is_finished_item or d.is_scrap_item: d.s_warehouse = None if not d.t_warehouse: frappe.throw(_("Target warehouse is mandatory for row {0}").format(d.idx)) @@ -648,9 +658,7 @@ def set_basic_rate(self, reset_outgoing_rate=True, raise_error_if_no_rate=True): outgoing_items_cost = self.set_rate_for_outgoing_items( reset_outgoing_rate, raise_error_if_no_rate ) - finished_item_qty = sum( - d.transfer_qty for d in self.items if d.is_finished_item or d.is_process_loss - ) + finished_item_qty = sum(d.transfer_qty for d in self.items if d.is_finished_item) # Set basic rate for incoming items for d in self.get("items"): @@ -689,8 +697,6 @@ def set_basic_rate(self, reset_outgoing_rate=True, raise_error_if_no_rate=True): # do not round off basic rate to avoid precision loss d.basic_rate = flt(d.basic_rate) - if d.is_process_loss: - d.basic_rate = flt(0.0) d.basic_amount = flt(flt(d.transfer_qty) * flt(d.basic_rate), d.precision("basic_amount")) def set_rate_for_outgoing_items(self, reset_outgoing_rate=True, raise_error_if_no_rate=True): @@ -1469,11 +1475,11 @@ def get_items(self): # add finished goods item if self.purpose in ("Manufacture", "Repack"): + self.set_process_loss_qty() self.load_items_from_bom() self.set_scrap_items() self.set_actual_qty() - self.update_items_for_process_loss() self.validate_customer_provided_item() self.calculate_rate_and_amount(raise_error_if_no_rate=False) @@ -1486,6 +1492,20 @@ def set_scrap_items(self): self.add_to_stock_entry_detail(scrap_item_dict, bom_no=self.bom_no) + def set_process_loss_qty(self): + if self.purpose not in ("Manufacture", "Repack"): + return + + self.process_loss_qty = 0.0 + self.process_loss_percentage = frappe.get_cached_value( + "BOM", self.bom_no, "process_loss_percentage" + ) + + if self.process_loss_percentage: + self.process_loss_qty = flt( + (flt(self.fg_completed_qty) * flt(self.process_loss_percentage)) / 100 + ) + def set_work_order_details(self): if not getattr(self, "pro_doc", None): self.pro_doc = frappe._dict() @@ -1518,7 +1538,7 @@ def load_items_from_bom(self): args = { "to_warehouse": to_warehouse, "from_warehouse": "", - "qty": self.fg_completed_qty, + "qty": flt(self.fg_completed_qty) - flt(self.process_loss_qty), "item_name": item.item_name, "description": item.description, "stock_uom": item.stock_uom, @@ -1966,7 +1986,6 @@ def add_to_stock_entry_detail(self, item_dict, bom_no=None): ) se_child.is_finished_item = item_row.get("is_finished_item", 0) se_child.is_scrap_item = item_row.get("is_scrap_item", 0) - se_child.is_process_loss = item_row.get("is_process_loss", 0) se_child.po_detail = item_row.get("po_detail") se_child.sco_rm_detail = item_row.get("sco_rm_detail") @@ -2213,31 +2232,6 @@ def set_material_request_transfer_status(self, status): material_requests.append(material_request) frappe.db.set_value("Material Request", material_request, "transfer_status", status) - def update_items_for_process_loss(self): - process_loss_dict = {} - for d in self.get("items"): - if not d.is_process_loss: - continue - - scrap_warehouse = frappe.db.get_single_value( - "Manufacturing Settings", "default_scrap_warehouse" - ) - if scrap_warehouse is not None: - d.t_warehouse = scrap_warehouse - d.is_scrap_item = 0 - - if d.item_code not in process_loss_dict: - process_loss_dict[d.item_code] = [flt(0), flt(0)] - process_loss_dict[d.item_code][0] += flt(d.transfer_qty) - process_loss_dict[d.item_code][1] += flt(d.qty) - - for d in self.get("items"): - if not d.is_finished_item or d.item_code not in process_loss_dict: - continue - # Assumption: 1 finished item has 1 row. - d.transfer_qty -= process_loss_dict[d.item_code][0] - d.qty -= process_loss_dict[d.item_code][1] - def set_serial_no_batch_for_finished_good(self): serial_nos = [] if self.pro_doc.serial_no: diff --git a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json index 95f4f5fd3696..fe81a87558ca 100644 --- a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json +++ b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json @@ -20,7 +20,6 @@ "is_finished_item", "is_scrap_item", "quality_inspection", - "is_process_loss", "subcontracted_item", "section_break_8", "description", @@ -559,12 +558,6 @@ "print_hide": 1, "read_only": 1 }, - { - "default": "0", - "fieldname": "is_process_loss", - "fieldtype": "Check", - "label": "Is Process Loss" - }, { "default": "0", "depends_on": "barcode", @@ -578,7 +571,7 @@ "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2022-11-02 13:00:34.258828", + "modified": "2023-01-03 14:51:16.575515", "modified_by": "Administrator", "module": "Stock", "name": "Stock Entry Detail", From 28d5990326ee28e5ea2c7ef4a9e27dba003f867b Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 3 Jan 2023 22:47:52 +0530 Subject: [PATCH 002/355] test: test cases for process loss (cherry picked from commit 524c0994e05c67ec00bb91e81abe725d6f77899a) --- erpnext/manufacturing/doctype/bom/bom.py | 5 ++ erpnext/manufacturing/doctype/bom/test_bom.py | 56 +++++++------------ .../doctype/work_order/test_work_order.py | 23 +++----- 3 files changed, 34 insertions(+), 50 deletions(-) diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py index 31f73963c846..53af28df8a57 100644 --- a/erpnext/manufacturing/doctype/bom/bom.py +++ b/erpnext/manufacturing/doctype/bom/bom.py @@ -193,6 +193,7 @@ def validate(self): self.update_exploded_items(save=False) self.update_stock_qty() self.update_cost(update_parent=False, from_child_bom=True, update_hour_rate=False, save=False) + self.set_process_loss_qty() self.validate_scrap_items() def get_context(self, context): @@ -877,6 +878,10 @@ def get_tree_representation(self) -> BOMTree: """Get a complete tree representation preserving order of child items.""" return BOMTree(self.name) + def set_process_loss_qty(self): + if self.process_loss_percentage: + self.process_loss_qty = flt(self.quantity) * flt(self.process_loss_percentage) / 100 + def validate_scrap_items(self): must_be_whole_number = frappe.get_value("UOM", self.uom, "must_be_whole_number") diff --git a/erpnext/manufacturing/doctype/bom/test_bom.py b/erpnext/manufacturing/doctype/bom/test_bom.py index 989861717e47..16f5c793720a 100644 --- a/erpnext/manufacturing/doctype/bom/test_bom.py +++ b/erpnext/manufacturing/doctype/bom/test_bom.py @@ -384,36 +384,16 @@ def test_bom_recursion_transitive(self): def test_bom_with_process_loss_item(self): fg_item_non_whole, fg_item_whole, bom_item = create_process_loss_bom_items() - if not frappe.db.exists("BOM", f"BOM-{fg_item_non_whole.item_code}-001"): - bom_doc = create_bom_with_process_loss_item( - fg_item_non_whole, bom_item, scrap_qty=0.25, scrap_rate=0, fg_qty=1 - ) - bom_doc.submit() - - bom_doc = create_bom_with_process_loss_item( - fg_item_non_whole, bom_item, scrap_qty=2, scrap_rate=0 - ) - # PL Item qty can't be >= FG Item qty - self.assertRaises(frappe.ValidationError, bom_doc.submit) - bom_doc = create_bom_with_process_loss_item( - fg_item_non_whole, bom_item, scrap_qty=1, scrap_rate=100 + fg_item_non_whole, bom_item, scrap_qty=2, scrap_rate=0, process_loss_percentage=110 ) - # PL Item rate has to be 0 + # PL can't be > 100 self.assertRaises(frappe.ValidationError, bom_doc.submit) - bom_doc = create_bom_with_process_loss_item( - fg_item_whole, bom_item, scrap_qty=0.25, scrap_rate=0 - ) + bom_doc = create_bom_with_process_loss_item(fg_item_whole, bom_item, process_loss_percentage=20) # Items with whole UOMs can't be PL Items self.assertRaises(frappe.ValidationError, bom_doc.submit) - bom_doc = create_bom_with_process_loss_item( - fg_item_non_whole, bom_item, scrap_qty=0.25, scrap_rate=0 - ) - # FG Items in Scrap/Loss Table should have Is Process Loss set - self.assertRaises(frappe.ValidationError, bom_doc.submit) - def test_bom_item_query(self): query = partial( item_query, @@ -743,7 +723,9 @@ def reset_item_valuation_rate(item_code, warehouse_list=None, qty=None, rate=Non create_stock_reconciliation(item_code=item_code, warehouse=warehouse, qty=qty, rate=rate) -def create_bom_with_process_loss_item(fg_item, bom_item, scrap_qty, scrap_rate, fg_qty=2): +def create_bom_with_process_loss_item( + fg_item, bom_item, scrap_qty=0, scrap_rate=0, fg_qty=2, process_loss_percentage=0 +): bom_doc = frappe.new_doc("BOM") bom_doc.item = fg_item.item_code bom_doc.quantity = fg_qty @@ -757,18 +739,22 @@ def create_bom_with_process_loss_item(fg_item, bom_item, scrap_qty, scrap_rate, "rate": 100.0, }, ) - bom_doc.append( - "scrap_items", - { - "item_code": fg_item.item_code, - "qty": scrap_qty, - "stock_qty": scrap_qty, - "uom": fg_item.stock_uom, - "stock_uom": fg_item.stock_uom, - "rate": scrap_rate, - }, - ) + + if scrap_qty: + bom_doc.append( + "scrap_items", + { + "item_code": fg_item.item_code, + "qty": scrap_qty, + "stock_qty": scrap_qty, + "uom": fg_item.stock_uom, + "stock_uom": fg_item.stock_uom, + "rate": scrap_rate, + }, + ) + bom_doc.currency = "INR" + bom_doc.process_loss_percentage = process_loss_percentage return bom_doc diff --git a/erpnext/manufacturing/doctype/work_order/test_work_order.py b/erpnext/manufacturing/doctype/work_order/test_work_order.py index 6c7483ca7d28..76040b29d598 100644 --- a/erpnext/manufacturing/doctype/work_order/test_work_order.py +++ b/erpnext/manufacturing/doctype/work_order/test_work_order.py @@ -846,20 +846,20 @@ def test_wo_completion_with_pl_bom(self): create_process_loss_bom_items, ) - qty = 4 + qty = 10 scrap_qty = 0.25 # bom item qty = 1, consider as 25% of FG source_warehouse = "Stores - _TC" wip_warehouse = "_Test Warehouse - _TC" fg_item_non_whole, _, bom_item = create_process_loss_bom_items() test_stock_entry.make_stock_entry( - item_code=bom_item.item_code, target=source_warehouse, qty=4, basic_rate=100 + item_code=bom_item.item_code, target=source_warehouse, qty=qty, basic_rate=100 ) bom_no = f"BOM-{fg_item_non_whole.item_code}-001" if not frappe.db.exists("BOM", bom_no): bom_doc = create_bom_with_process_loss_item( - fg_item_non_whole, bom_item, scrap_qty=scrap_qty, scrap_rate=0, fg_qty=1 + fg_item_non_whole, bom_item, fg_qty=1, process_loss_percentage=10 ) bom_doc.submit() @@ -883,19 +883,12 @@ def test_wo_completion_with_pl_bom(self): # Testing stock entry values items = se.get("items") - self.assertEqual(len(items), 3, "There should be 3 items including process loss.") + self.assertEqual(len(items), 2, "There should be 3 items including process loss.") + fg_item = items[1] - source_item, fg_item, pl_item = items - - total_pl_qty = qty * scrap_qty - actual_fg_qty = qty - total_pl_qty - - self.assertEqual(pl_item.qty, total_pl_qty) - self.assertEqual(fg_item.qty, actual_fg_qty) - - # Testing Work Order values - self.assertEqual(frappe.db.get_value("Work Order", wo.name, "produced_qty"), qty) - self.assertEqual(frappe.db.get_value("Work Order", wo.name, "process_loss_qty"), total_pl_qty) + self.assertEqual(fg_item.qty, qty - 1) + self.assertEqual(se.process_loss_percentage, 10) + self.assertEqual(se.process_loss_qty, 1) @timeout(seconds=60) def test_job_card_scrap_item(self): From 3dab539719cc508cba1b64be177051a68c0f2a78 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 5 Jan 2023 12:25:50 +0530 Subject: [PATCH 003/355] chore: enable `No Copy` attribute for `route` in Item Group (cherry picked from commit 348dc3251485f0204430cdb8b42e27a5bcf07f9a) --- erpnext/setup/doctype/item_group/item_group.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/setup/doctype/item_group/item_group.json b/erpnext/setup/doctype/item_group/item_group.json index 50f923d87e0b..2986087277c8 100644 --- a/erpnext/setup/doctype/item_group/item_group.json +++ b/erpnext/setup/doctype/item_group/item_group.json @@ -123,6 +123,7 @@ "fieldname": "route", "fieldtype": "Data", "label": "Route", + "no_copy": 1, "unique": 1 }, { @@ -232,11 +233,10 @@ "is_tree": 1, "links": [], "max_attachments": 3, - "modified": "2022-03-09 12:27:11.055782", + "modified": "2023-01-05 12:21:30.458628", "modified_by": "Administrator", "module": "Setup", "name": "Item Group", - "name_case": "Title Case", "naming_rule": "By fieldname", "nsm_parent_field": "parent_item_group", "owner": "Administrator", From 031841d58e169ae8c6e179fd9818eb0467e3284d Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Wed, 4 Jan 2023 11:07:52 +0530 Subject: [PATCH 004/355] refactor: Sales Partner column in AR and AR Summary Report (cherry picked from commit ee94127974140eccf4393f5190b1626a551e5e2c) --- .../accounts_receivable/accounts_receivable.py | 12 ++++++++++-- .../accounts_receivable_summary.py | 7 +++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py index fb2e444abd14..94a1510f0959 100755 --- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py +++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py @@ -810,7 +810,7 @@ def add_customer_filters( self.ple.party.isin( qb.from_(self.customer) .select(self.customer.name) - .where(self.customer.default_sales_partner == self.filters.get("payment_terms_template")) + .where(self.customer.default_sales_partner == self.filters.get("sales_partner")) ) ) @@ -869,10 +869,15 @@ def is_invoice(self, ple): def get_party_details(self, party): if not party in self.party_details: if self.party_type == "Customer": + fields = ["customer_name", "territory", "customer_group", "customer_primary_contact"] + + if self.filters.get("sales_partner"): + fields.append("default_sales_partner") + self.party_details[party] = frappe.db.get_value( "Customer", party, - ["customer_name", "territory", "customer_group", "customer_primary_contact"], + fields, as_dict=True, ) else: @@ -973,6 +978,9 @@ def get_columns(self): if self.filters.show_sales_person: self.add_column(label=_("Sales Person"), fieldname="sales_person", fieldtype="Data") + if self.filters.sales_partner: + self.add_column(label=_("Sales Partner"), fieldname="default_sales_partner", fieldtype="Data") + if self.filters.party_type == "Supplier": self.add_column( label=_("Supplier Group"), diff --git a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py index 889f5a22a8a1..29217b04be23 100644 --- a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py +++ b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py @@ -121,6 +121,9 @@ def set_party_details(self, row): if row.sales_person: self.party_total[row.party].sales_person.append(row.sales_person) + if self.filters.sales_partner: + self.party_total[row.party]["default_sales_partner"] = row.get("default_sales_partner") + def get_columns(self): self.columns = [] self.add_column( @@ -160,6 +163,10 @@ def get_columns(self): ) if self.filters.show_sales_person: self.add_column(label=_("Sales Person"), fieldname="sales_person", fieldtype="Data") + + if self.filters.sales_partner: + self.add_column(label=_("Sales Partner"), fieldname="default_sales_partner", fieldtype="Data") + else: self.add_column( label=_("Supplier Group"), From 2658fc9f9b022cac6806ef4aa1152c392c9afc0f Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 5 Jan 2023 14:24:58 +0530 Subject: [PATCH 005/355] fix: incorrect status in the work order (cherry picked from commit b0baba84a0f821ad0cb515a01da2205bb6610b7f) --- .../doctype/work_order/test_work_order.py | 3 ++ .../doctype/work_order/work_order.py | 28 ++++++++----------- .../stock/doctype/stock_entry/stock_entry.py | 9 +++--- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/erpnext/manufacturing/doctype/work_order/test_work_order.py b/erpnext/manufacturing/doctype/work_order/test_work_order.py index 76040b29d598..729ed42f51a2 100644 --- a/erpnext/manufacturing/doctype/work_order/test_work_order.py +++ b/erpnext/manufacturing/doctype/work_order/test_work_order.py @@ -890,6 +890,9 @@ def test_wo_completion_with_pl_bom(self): self.assertEqual(se.process_loss_percentage, 10) self.assertEqual(se.process_loss_qty, 1) + wo.load_from_db() + self.assertEqual(wo.status, "In Process") + @timeout(seconds=60) def test_job_card_scrap_item(self): items = [ diff --git a/erpnext/manufacturing/doctype/work_order/work_order.py b/erpnext/manufacturing/doctype/work_order/work_order.py index 2b30641ff3f3..ae9e9c696288 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.py +++ b/erpnext/manufacturing/doctype/work_order/work_order.py @@ -246,21 +246,11 @@ def get_status(self, status=None): status = "Draft" elif self.docstatus == 1: if status != "Stopped": - stock_entries = frappe._dict( - frappe.db.sql( - """select purpose, sum(fg_completed_qty) - from `tabStock Entry` where work_order=%s and docstatus=1 - group by purpose""", - self.name, - ) - ) - status = "Not Started" - if stock_entries: + if flt(self.material_transferred_for_manufacturing) > 0: status = "In Process" - produced_qty = stock_entries.get("Manufacture") - if flt(produced_qty) >= flt(self.qty): - status = "Completed" + if flt(self.produced_qty) >= flt(self.qty): + status = "Completed" else: status = "Cancelled" @@ -309,12 +299,15 @@ def update_work_order_qty(self): def get_transferred_or_manufactured_qty(self, purpose): table = frappe.qb.DocType("Stock Entry") - query = ( - frappe.qb.from_(table) - .select(Sum(table.fg_completed_qty)) - .where((table.work_order == self.name) & (table.docstatus == 1) & (table.purpose == purpose)) + query = frappe.qb.from_(table).where( + (table.work_order == self.name) & (table.docstatus == 1) & (table.purpose == purpose) ) + if purpose == "Manufacture": + query = query.select(Sum(table.fg_completed_qty) - Sum(table.process_loss_qty)) + else: + query = query.select(Sum(table.fg_completed_qty)) + return flt(query.run()[0][0]) def set_process_loss_qty(self): @@ -346,6 +339,7 @@ def update_production_plan_status(self): produced_qty = total_qty[0][0] if total_qty else 0 + self.update_status() production_plan.run_method( "update_produced_pending_qty", produced_qty, self.production_plan_item ) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 0342210eb961..a5264ac195af 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -1247,7 +1247,6 @@ def _validate_work_order(pro_doc): if self.work_order: pro_doc = frappe.get_doc("Work Order", self.work_order) _validate_work_order(pro_doc) - pro_doc.run_method("update_status") if self.fg_completed_qty: pro_doc.run_method("update_work_order_qty") @@ -1255,6 +1254,7 @@ def _validate_work_order(pro_doc): pro_doc.run_method("update_planned_qty") pro_doc.update_batch_produced_qty(self) + pro_doc.run_method("update_status") if not pro_doc.operations: pro_doc.set_actual_dates() @@ -1497,9 +1497,10 @@ def set_process_loss_qty(self): return self.process_loss_qty = 0.0 - self.process_loss_percentage = frappe.get_cached_value( - "BOM", self.bom_no, "process_loss_percentage" - ) + if not self.process_loss_percentage: + self.process_loss_percentage = frappe.get_cached_value( + "BOM", self.bom_no, "process_loss_percentage" + ) if self.process_loss_percentage: self.process_loss_qty = flt( From 259639a4563107a15d87289287de77a2a7b6b611 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Tue, 3 Jan 2023 16:55:15 +0530 Subject: [PATCH 006/355] fix: Exchange gain and loss booking on multi-currency invoice reconciliation (#32900) * fix: Exchange gain and loss booking on multi-curreny invoice reconciliation * test: Update test cases * chore: Ignore SQL linting rule * chore: Joural Entry for exchange gainand loss booking * chore: Journal entry for exchange gain loss booking * test: Update test case * chore: Default exchange gain and loss account (cherry picked from commit 9a3d947e893a787834bf12a9cf50c4af9e449f40) --- .../doctype/journal_entry/journal_entry.py | 18 +- .../payment_reconciliation.js | 16 +- .../payment_reconciliation.py | 132 ++++++++++-- .../test_payment_reconciliation.py | 198 +++++++++++++++--- .../payment_reconciliation_allocation.json | 26 ++- .../payment_reconciliation_invoice.json | 12 +- .../payment_reconciliation_payment.json | 14 +- 7 files changed, 349 insertions(+), 67 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 5a1b6ba1712f..88b030cae3d5 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -592,15 +592,15 @@ def set_against_account(self): d.against_account = frappe.db.get_value(d.reference_type, d.reference_name, field) else: for d in self.get("accounts"): - if flt(d.debit > 0): + if flt(d.debit) > 0: accounts_debited.append(d.party or d.account) if flt(d.credit) > 0: accounts_credited.append(d.party or d.account) for d in self.get("accounts"): - if flt(d.debit > 0): + if flt(d.debit) > 0: d.against_account = ", ".join(list(set(accounts_credited))) - if flt(d.credit > 0): + if flt(d.credit) > 0: d.against_account = ", ".join(list(set(accounts_debited))) def validate_debit_credit_amount(self): @@ -762,7 +762,7 @@ def set_print_format_fields(self): pay_to_recd_from = d.party if pay_to_recd_from and pay_to_recd_from == d.party: - party_amount += d.debit_in_account_currency or d.credit_in_account_currency + party_amount += flt(d.debit_in_account_currency) or flt(d.credit_in_account_currency) party_account_currency = d.account_currency elif frappe.db.get_value("Account", d.account, "account_type") in ["Bank", "Cash"]: @@ -840,7 +840,7 @@ def make_gl_entries(self, cancel=0, adv_adj=0): make_gl_entries(gl_map, cancel=cancel, adv_adj=adv_adj, update_outstanding=update_outstanding) @frappe.whitelist() - def get_balance(self): + def get_balance(self, difference_account=None): if not self.get("accounts"): msgprint(_("'Entries' cannot be empty"), raise_exception=True) else: @@ -855,7 +855,13 @@ def get_balance(self): blank_row = d if not blank_row: - blank_row = self.append("accounts", {}) + blank_row = self.append( + "accounts", + { + "account": difference_account, + "cost_center": erpnext.get_default_cost_center(self.company), + }, + ) blank_row.exchange_rate = 1 if diff > 0: diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js index 0b334ae076df..d986f320669c 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js @@ -170,7 +170,7 @@ erpnext.accounts.PaymentReconciliationController = class PaymentReconciliationCo } reconcile() { - var show_dialog = this.frm.doc.allocation.filter(d => d.difference_amount && !d.difference_account); + var show_dialog = this.frm.doc.allocation.filter(d => d.difference_amount); if (show_dialog && show_dialog.length) { @@ -179,8 +179,12 @@ erpnext.accounts.PaymentReconciliationController = class PaymentReconciliationCo title: __("Select Difference Account"), fields: [ { - fieldname: "allocation", fieldtype: "Table", label: __("Allocation"), - data: this.data, in_place_edit: true, + fieldname: "allocation", + fieldtype: "Table", + label: __("Allocation"), + data: this.data, + in_place_edit: true, + cannot_add_rows: true, get_data: () => { return this.data; }, @@ -218,6 +222,10 @@ erpnext.accounts.PaymentReconciliationController = class PaymentReconciliationCo read_only: 1 }] }, + { + fieldtype: 'HTML', + options: " New Journal Entry will be posted for the difference amount " + } ], primary_action: () => { const args = dialog.get_values()["allocation"]; @@ -234,7 +242,7 @@ erpnext.accounts.PaymentReconciliationController = class PaymentReconciliationCo }); this.frm.doc.allocation.forEach(d => { - if (d.difference_amount && !d.difference_account) { + if (d.difference_amount) { dialog.fields_dict.allocation.df.data.push({ 'docname': d.name, 'reference_name': d.reference_name, diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py index ff212f2a35f5..ac033f7db603 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py @@ -14,7 +14,6 @@ QueryPaymentLedger, get_outstanding_invoices, reconcile_against_document, - update_reference_in_payment_entry, ) from erpnext.controllers.accounts_controller import get_advance_payment_entries @@ -80,12 +79,13 @@ def get_jv_entries(self): "t2.against_account like %(bank_cash_account)s" if self.bank_cash_account else "1=1" ) + # nosemgrep journal_entries = frappe.db.sql( """ select "Journal Entry" as reference_type, t1.name as reference_name, t1.posting_date, t1.remark as remarks, t2.name as reference_row, - {dr_or_cr} as amount, t2.is_advance, + {dr_or_cr} as amount, t2.is_advance, t2.exchange_rate, t2.account_currency as currency from `tabJournal Entry` t1, `tabJournal Entry Account` t2 @@ -215,26 +215,26 @@ def add_invoice_entries(self, non_reconciled_invoices): inv.currency = entry.get("currency") inv.outstanding_amount = flt(entry.get("outstanding_amount")) - def get_difference_amount(self, allocated_entry): - if allocated_entry.get("reference_type") != "Payment Entry": - return + def get_difference_amount(self, payment_entry, invoice, allocated_amount): + difference_amount = 0 + if invoice.get("exchange_rate") and payment_entry.get("exchange_rate", 1) != invoice.get( + "exchange_rate", 1 + ): + allocated_amount_in_ref_rate = payment_entry.get("exchange_rate", 1) * allocated_amount + allocated_amount_in_inv_rate = invoice.get("exchange_rate", 1) * allocated_amount + difference_amount = allocated_amount_in_ref_rate - allocated_amount_in_inv_rate - dr_or_cr = ( - "credit_in_account_currency" - if erpnext.get_party_account_type(self.party_type) == "Receivable" - else "debit_in_account_currency" - ) - - row = self.get_payment_details(allocated_entry, dr_or_cr) - - doc = frappe.get_doc(allocated_entry.reference_type, allocated_entry.reference_name) - update_reference_in_payment_entry(row, doc, do_not_save=True) - - return doc.difference_amount + return difference_amount @frappe.whitelist() def allocate_entries(self, args): self.validate_entries() + + invoice_exchange_map = self.get_invoice_exchange_map(args.get("invoices")) + default_exchange_gain_loss_account = frappe.get_cached_value( + "Company", self.company, "exchange_gain_loss_account" + ) + entries = [] for pay in args.get("payments"): pay.update({"unreconciled_amount": pay.get("amount")}) @@ -248,7 +248,10 @@ def allocate_entries(self, args): inv["outstanding_amount"] = flt(inv.get("outstanding_amount")) - flt(pay.get("amount")) pay["amount"] = 0 - res.difference_amount = self.get_difference_amount(res) + inv["exchange_rate"] = invoice_exchange_map.get(inv.get("invoice_number")) + 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") if pay.get("amount") == 0: entries.append(res) @@ -278,6 +281,7 @@ def get_allocated_entry(self, pay, inv, allocated_amount): "amount": pay.get("amount"), "allocated_amount": allocated_amount, "difference_amount": pay.get("difference_amount"), + "currency": inv.get("currency"), } ) @@ -300,7 +304,11 @@ def reconcile(self): else: reconciled_entry = entry_list - reconciled_entry.append(self.get_payment_details(row, dr_or_cr)) + payment_details = self.get_payment_details(row, dr_or_cr) + reconciled_entry.append(payment_details) + + if payment_details.difference_amount: + self.make_difference_entry(payment_details) if entry_list: reconcile_against_document(entry_list) @@ -311,6 +319,56 @@ def reconcile(self): msgprint(_("Successfully Reconciled")) self.get_unreconciled_entries() + def make_difference_entry(self, row): + journal_entry = frappe.new_doc("Journal Entry") + journal_entry.voucher_type = "Exchange Gain Or Loss" + journal_entry.company = self.company + journal_entry.posting_date = nowdate() + journal_entry.multi_currency = 1 + + party_account_currency = frappe.get_cached_value( + "Account", self.receivable_payable_account, "account_currency" + ) + difference_account_currency = frappe.get_cached_value( + "Account", row.difference_account, "account_currency" + ) + + # Account Currency has balance + dr_or_cr = "debit" if self.party_type == "Customer" else "debit" + reverse_dr_or_cr = "debit" if dr_or_cr == "credit" else "credit" + + journal_account = frappe._dict( + { + "account": self.receivable_payable_account, + "party_type": self.party_type, + "party": self.party, + "account_currency": party_account_currency, + "exchange_rate": 0, + "cost_center": erpnext.get_default_cost_center(self.company), + "reference_type": row.against_voucher_type, + "reference_name": row.against_voucher, + dr_or_cr: flt(row.difference_amount), + dr_or_cr + "_in_account_currency": 0, + } + ) + + journal_entry.append("accounts", journal_account) + + journal_account = frappe._dict( + { + "account": row.difference_account, + "account_currency": difference_account_currency, + "exchange_rate": 1, + "cost_center": erpnext.get_default_cost_center(self.company), + reverse_dr_or_cr + "_in_account_currency": flt(row.difference_amount), + } + ) + + journal_entry.append("accounts", journal_account) + + journal_entry.save() + journal_entry.submit() + def get_payment_details(self, row, dr_or_cr): return frappe._dict( { @@ -320,6 +378,7 @@ def get_payment_details(self, row, dr_or_cr): "against_voucher_type": row.get("invoice_type"), "against_voucher": row.get("invoice_number"), "account": self.receivable_payable_account, + "exchange_rate": row.get("exchange_rate"), "party_type": self.party_type, "party": self.party, "is_advance": row.get("is_advance"), @@ -344,6 +403,41 @@ def validate_entries(self): if not self.get("payments"): frappe.throw(_("No records found in the Payments table")) + def get_invoice_exchange_map(self, invoices): + sales_invoices = [ + d.get("invoice_number") for d in invoices if d.get("invoice_type") == "Sales Invoice" + ] + purchase_invoices = [ + d.get("invoice_number") for d in invoices if d.get("invoice_type") == "Purchase Invoice" + ] + invoice_exchange_map = frappe._dict() + + if sales_invoices: + sales_invoice_map = frappe._dict( + frappe.db.get_all( + "Sales Invoice", + filters={"name": ("in", sales_invoices)}, + fields=["name", "conversion_rate"], + as_list=1, + ) + ) + + invoice_exchange_map.update(sales_invoice_map) + + if purchase_invoices: + purchase_invoice_map = frappe._dict( + frappe.db.get_all( + "Purchase Invoice", + filters={"name": ("in", purchase_invoices)}, + fields=["name", "conversion_rate"], + as_list=1, + ) + ) + + invoice_exchange_map.update(purchase_invoice_map) + + return invoice_exchange_map + def validate_allocation(self): unreconciled_invoices = frappe._dict() diff --git a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py index 6030134fff2d..2ba90b4da9ff 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py @@ -6,7 +6,7 @@ import frappe from frappe import qb from frappe.tests.utils import FrappeTestCase -from frappe.utils import add_days, nowdate +from frappe.utils import add_days, flt, nowdate from erpnext import get_default_cost_center from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry @@ -75,33 +75,11 @@ def create_item(self): self.item = item if isinstance(item, str) else item.item_code def create_customer(self): - if frappe.db.exists("Customer", "_Test PR Customer"): - self.customer = "_Test PR Customer" - else: - customer = frappe.new_doc("Customer") - customer.customer_name = "_Test PR Customer" - customer.type = "Individual" - customer.save() - self.customer = customer.name - - if frappe.db.exists("Customer", "_Test PR Customer 2"): - self.customer2 = "_Test PR Customer 2" - else: - customer = frappe.new_doc("Customer") - customer.customer_name = "_Test PR Customer 2" - customer.type = "Individual" - customer.save() - self.customer2 = customer.name - - if frappe.db.exists("Customer", "_Test PR Customer 3"): - self.customer3 = "_Test PR Customer 3" - else: - customer = frappe.new_doc("Customer") - customer.customer_name = "_Test PR Customer 3" - customer.type = "Individual" - customer.default_currency = "EUR" - customer.save() - self.customer3 = customer.name + self.customer = make_customer("_Test PR Customer") + self.customer2 = make_customer("_Test PR Customer 2") + self.customer3 = make_customer("_Test PR Customer 3", "EUR") + self.customer4 = make_customer("_Test PR Customer 4", "EUR") + self.customer5 = make_customer("_Test PR Customer 5", "EUR") def create_account(self): account_name = "Debtors EUR" @@ -598,6 +576,156 @@ def test_pr_output_foreign_currency_and_amount(self): self.assertEqual(pr.payments[0].amount, amount) self.assertEqual(pr.payments[0].currency, "EUR") + def test_difference_amount_via_journal_entry(self): + # Make Sale Invoice + si = self.create_sales_invoice( + qty=1, rate=100, posting_date=nowdate(), do_not_save=True, do_not_submit=True + ) + si.customer = self.customer4 + si.currency = "EUR" + si.conversion_rate = 85 + si.debit_to = self.debtors_eur + si.save().submit() + + # Make payment using Journal Entry + je1 = self.create_journal_entry("HDFC - _PR", self.debtors_eur, 100, nowdate()) + je1.multi_currency = 1 + je1.accounts[0].exchange_rate = 1 + je1.accounts[0].credit_in_account_currency = 0 + je1.accounts[0].credit = 0 + je1.accounts[0].debit_in_account_currency = 8000 + je1.accounts[0].debit = 8000 + je1.accounts[1].party_type = "Customer" + je1.accounts[1].party = self.customer4 + je1.accounts[1].exchange_rate = 80 + je1.accounts[1].credit_in_account_currency = 100 + je1.accounts[1].credit = 8000 + je1.accounts[1].debit_in_account_currency = 0 + je1.accounts[1].debit = 0 + je1.save() + je1.submit() + + je2 = self.create_journal_entry("HDFC - _PR", self.debtors_eur, 200, nowdate()) + je2.multi_currency = 1 + je2.accounts[0].exchange_rate = 1 + je2.accounts[0].credit_in_account_currency = 0 + je2.accounts[0].credit = 0 + je2.accounts[0].debit_in_account_currency = 16000 + je2.accounts[0].debit = 16000 + je2.accounts[1].party_type = "Customer" + je2.accounts[1].party = self.customer4 + je2.accounts[1].exchange_rate = 80 + je2.accounts[1].credit_in_account_currency = 200 + je1.accounts[1].credit = 16000 + je1.accounts[1].debit_in_account_currency = 0 + je1.accounts[1].debit = 0 + je2.save() + je2.submit() + + pr = self.create_payment_reconciliation() + pr.party = self.customer4 + pr.receivable_payable_account = self.debtors_eur + pr.get_unreconciled_entries() + + self.assertEqual(len(pr.invoices), 1) + self.assertEqual(len(pr.payments), 2) + + # Test exact payment allocation + invoices = [x.as_dict() for x in pr.invoices] + payments = [pr.payments[0].as_dict()] + pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments})) + + self.assertEqual(pr.allocation[0].allocated_amount, 100) + self.assertEqual(pr.allocation[0].difference_amount, -500) + + # Test partial payment allocation (with excess payment entry) + pr.set("allocation", []) + pr.get_unreconciled_entries() + invoices = [x.as_dict() for x in pr.invoices] + payments = [pr.payments[1].as_dict()] + pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments})) + pr.allocation[0].difference_account = "Exchange Gain/Loss - _PR" + + self.assertEqual(pr.allocation[0].allocated_amount, 100) + self.assertEqual(pr.allocation[0].difference_amount, -500) + + # Check if difference journal entry gets generated for difference amount after reconciliation + pr.reconcile() + total_debit_amount = frappe.db.get_all( + "Journal Entry Account", + {"account": self.debtors_eur, "docstatus": 1, "reference_name": si.name}, + "sum(debit) as amount", + group_by="reference_name", + )[0].amount + + self.assertEqual(flt(total_debit_amount, 2), -500) + + def test_difference_amount_via_payment_entry(self): + # Make Sale Invoice + si = self.create_sales_invoice( + qty=1, rate=100, posting_date=nowdate(), do_not_save=True, do_not_submit=True + ) + si.customer = self.customer5 + si.currency = "EUR" + si.conversion_rate = 85 + si.debit_to = self.debtors_eur + si.save().submit() + + # Make payment using Payment Entry + pe1 = create_payment_entry( + company=self.company, + payment_type="Receive", + party_type="Customer", + party=self.customer5, + paid_from=self.debtors_eur, + paid_to=self.bank, + paid_amount=100, + ) + + pe1.source_exchange_rate = 80 + pe1.received_amount = 8000 + pe1.save() + pe1.submit() + + pe2 = create_payment_entry( + company=self.company, + payment_type="Receive", + party_type="Customer", + party=self.customer5, + paid_from=self.debtors_eur, + paid_to=self.bank, + paid_amount=200, + ) + + pe2.source_exchange_rate = 80 + pe2.received_amount = 16000 + pe2.save() + pe2.submit() + + pr = self.create_payment_reconciliation() + pr.party = self.customer5 + pr.receivable_payable_account = self.debtors_eur + pr.get_unreconciled_entries() + + self.assertEqual(len(pr.invoices), 1) + self.assertEqual(len(pr.payments), 2) + + invoices = [x.as_dict() for x in pr.invoices] + payments = [pr.payments[0].as_dict()] + pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments})) + + self.assertEqual(pr.allocation[0].allocated_amount, 100) + self.assertEqual(pr.allocation[0].difference_amount, -500) + + pr.set("allocation", []) + pr.get_unreconciled_entries() + invoices = [x.as_dict() for x in pr.invoices] + payments = [pr.payments[1].as_dict()] + pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments})) + + self.assertEqual(pr.allocation[0].allocated_amount, 100) + self.assertEqual(pr.allocation[0].difference_amount, -500) + def test_differing_cost_center_on_invoice_and_payment(self): """ Cost Center filter should not affect outstanding amount calculation @@ -618,3 +746,17 @@ def test_differing_cost_center_on_invoice_and_payment(self): # check PR tool output self.assertEqual(len(pr.get("invoices")), 0) self.assertEqual(len(pr.get("payments")), 0) + + +def make_customer(customer_name, currency=None): + if not frappe.db.exists("Customer", customer_name): + customer = frappe.new_doc("Customer") + customer.customer_name = customer_name + customer.type = "Individual" + + if currency: + customer.default_currency = currency + customer.save() + return customer.name + else: + return customer_name diff --git a/erpnext/accounts/doctype/payment_reconciliation_allocation/payment_reconciliation_allocation.json b/erpnext/accounts/doctype/payment_reconciliation_allocation/payment_reconciliation_allocation.json index 6a21692c6ac1..0f7e47acfee4 100644 --- a/erpnext/accounts/doctype/payment_reconciliation_allocation/payment_reconciliation_allocation.json +++ b/erpnext/accounts/doctype/payment_reconciliation_allocation/payment_reconciliation_allocation.json @@ -20,7 +20,9 @@ "section_break_5", "difference_amount", "column_break_7", - "difference_account" + "difference_account", + "exchange_rate", + "currency" ], "fields": [ { @@ -37,7 +39,7 @@ "fieldtype": "Currency", "in_list_view": 1, "label": "Allocated Amount", - "options": "Currency", + "options": "currency", "reqd": 1 }, { @@ -112,7 +114,7 @@ "fieldtype": "Currency", "hidden": 1, "label": "Unreconciled Amount", - "options": "Currency", + "options": "currency", "read_only": 1 }, { @@ -120,7 +122,7 @@ "fieldtype": "Currency", "hidden": 1, "label": "Amount", - "options": "Currency", + "options": "currency", "read_only": 1 }, { @@ -129,11 +131,24 @@ "hidden": 1, "label": "Reference Row", "read_only": 1 + }, + { + "fieldname": "currency", + "fieldtype": "Link", + "hidden": 1, + "label": "Currency", + "options": "Currency" + }, + { + "fieldname": "exchange_rate", + "fieldtype": "Float", + "label": "Exchange Rate", + "read_only": 1 } ], "istable": 1, "links": [], - "modified": "2021-10-06 11:48:59.616562", + "modified": "2022-12-24 21:01:14.882747", "modified_by": "Administrator", "module": "Accounts", "name": "Payment Reconciliation Allocation", @@ -141,5 +156,6 @@ "permissions": [], "sort_field": "modified", "sort_order": "DESC", + "states": [], "track_changes": 1 } \ No newline at end of file diff --git a/erpnext/accounts/doctype/payment_reconciliation_invoice/payment_reconciliation_invoice.json b/erpnext/accounts/doctype/payment_reconciliation_invoice/payment_reconciliation_invoice.json index 00c9e1240c54..c4dbd7e84412 100644 --- a/erpnext/accounts/doctype/payment_reconciliation_invoice/payment_reconciliation_invoice.json +++ b/erpnext/accounts/doctype/payment_reconciliation_invoice/payment_reconciliation_invoice.json @@ -11,7 +11,8 @@ "col_break1", "amount", "outstanding_amount", - "currency" + "currency", + "exchange_rate" ], "fields": [ { @@ -62,11 +63,17 @@ "hidden": 1, "label": "Currency", "options": "Currency" + }, + { + "fieldname": "exchange_rate", + "fieldtype": "Float", + "hidden": 1, + "label": "Exchange Rate" } ], "istable": 1, "links": [], - "modified": "2021-08-24 22:42:40.923179", + "modified": "2022-11-08 18:18:02.502149", "modified_by": "Administrator", "module": "Accounts", "name": "Payment Reconciliation Invoice", @@ -75,5 +82,6 @@ "quick_entry": 1, "sort_field": "modified", "sort_order": "DESC", + "states": [], "track_changes": 1 } \ No newline at end of file diff --git a/erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.json b/erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.json index add07e870d8e..d300ea97abc4 100644 --- a/erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.json +++ b/erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.json @@ -15,7 +15,8 @@ "difference_amount", "sec_break1", "remark", - "currency" + "currency", + "exchange_rate" ], "fields": [ { @@ -91,11 +92,17 @@ "label": "Difference Amount", "options": "currency", "read_only": 1 + }, + { + "fieldname": "exchange_rate", + "fieldtype": "Float", + "hidden": 1, + "label": "Exchange Rate" } ], "istable": 1, "links": [], - "modified": "2021-08-30 10:51:48.140062", + "modified": "2022-11-08 18:18:36.268760", "modified_by": "Administrator", "module": "Accounts", "name": "Payment Reconciliation Payment", @@ -103,5 +110,6 @@ "permissions": [], "quick_entry": 1, "sort_field": "modified", - "sort_order": "DESC" + "sort_order": "DESC", + "states": [] } \ No newline at end of file From fe82ebcc38b1eed26a6b722aadfa304f895694b3 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 7 Jan 2023 14:00:13 +0530 Subject: [PATCH 007/355] fix: Exchange gain and loss booking on multi-currency invoice reconciliation (#32900) fix: Exchange gain and loss booking on multi-currency invoice reconciliation (#32900) * fix: Exchange gain and loss booking on multi-curreny invoice reconciliation * test: Update test cases * chore: Ignore SQL linting rule * chore: Joural Entry for exchange gainand loss booking * chore: Journal entry for exchange gain loss booking * test: Update test case * chore: Default exchange gain and loss account (cherry picked from commit 9a3d947e893a787834bf12a9cf50c4af9e449f40) Co-authored-by: Deepesh Garg --- .../doctype/journal_entry/journal_entry.py | 18 +- .../payment_reconciliation.js | 16 +- .../payment_reconciliation.py | 132 ++++++++++-- .../test_payment_reconciliation.py | 198 +++++++++++++++--- .../payment_reconciliation_allocation.json | 26 ++- .../payment_reconciliation_invoice.json | 12 +- .../payment_reconciliation_payment.json | 14 +- 7 files changed, 349 insertions(+), 67 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 5a1b6ba1712f..88b030cae3d5 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -592,15 +592,15 @@ def set_against_account(self): d.against_account = frappe.db.get_value(d.reference_type, d.reference_name, field) else: for d in self.get("accounts"): - if flt(d.debit > 0): + if flt(d.debit) > 0: accounts_debited.append(d.party or d.account) if flt(d.credit) > 0: accounts_credited.append(d.party or d.account) for d in self.get("accounts"): - if flt(d.debit > 0): + if flt(d.debit) > 0: d.against_account = ", ".join(list(set(accounts_credited))) - if flt(d.credit > 0): + if flt(d.credit) > 0: d.against_account = ", ".join(list(set(accounts_debited))) def validate_debit_credit_amount(self): @@ -762,7 +762,7 @@ def set_print_format_fields(self): pay_to_recd_from = d.party if pay_to_recd_from and pay_to_recd_from == d.party: - party_amount += d.debit_in_account_currency or d.credit_in_account_currency + party_amount += flt(d.debit_in_account_currency) or flt(d.credit_in_account_currency) party_account_currency = d.account_currency elif frappe.db.get_value("Account", d.account, "account_type") in ["Bank", "Cash"]: @@ -840,7 +840,7 @@ def make_gl_entries(self, cancel=0, adv_adj=0): make_gl_entries(gl_map, cancel=cancel, adv_adj=adv_adj, update_outstanding=update_outstanding) @frappe.whitelist() - def get_balance(self): + def get_balance(self, difference_account=None): if not self.get("accounts"): msgprint(_("'Entries' cannot be empty"), raise_exception=True) else: @@ -855,7 +855,13 @@ def get_balance(self): blank_row = d if not blank_row: - blank_row = self.append("accounts", {}) + blank_row = self.append( + "accounts", + { + "account": difference_account, + "cost_center": erpnext.get_default_cost_center(self.company), + }, + ) blank_row.exchange_rate = 1 if diff > 0: diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js index 0b334ae076df..d986f320669c 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js @@ -170,7 +170,7 @@ erpnext.accounts.PaymentReconciliationController = class PaymentReconciliationCo } reconcile() { - var show_dialog = this.frm.doc.allocation.filter(d => d.difference_amount && !d.difference_account); + var show_dialog = this.frm.doc.allocation.filter(d => d.difference_amount); if (show_dialog && show_dialog.length) { @@ -179,8 +179,12 @@ erpnext.accounts.PaymentReconciliationController = class PaymentReconciliationCo title: __("Select Difference Account"), fields: [ { - fieldname: "allocation", fieldtype: "Table", label: __("Allocation"), - data: this.data, in_place_edit: true, + fieldname: "allocation", + fieldtype: "Table", + label: __("Allocation"), + data: this.data, + in_place_edit: true, + cannot_add_rows: true, get_data: () => { return this.data; }, @@ -218,6 +222,10 @@ erpnext.accounts.PaymentReconciliationController = class PaymentReconciliationCo read_only: 1 }] }, + { + fieldtype: 'HTML', + options: " New Journal Entry will be posted for the difference amount " + } ], primary_action: () => { const args = dialog.get_values()["allocation"]; @@ -234,7 +242,7 @@ erpnext.accounts.PaymentReconciliationController = class PaymentReconciliationCo }); this.frm.doc.allocation.forEach(d => { - if (d.difference_amount && !d.difference_account) { + if (d.difference_amount) { dialog.fields_dict.allocation.df.data.push({ 'docname': d.name, 'reference_name': d.reference_name, diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py index ff212f2a35f5..ac033f7db603 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py @@ -14,7 +14,6 @@ QueryPaymentLedger, get_outstanding_invoices, reconcile_against_document, - update_reference_in_payment_entry, ) from erpnext.controllers.accounts_controller import get_advance_payment_entries @@ -80,12 +79,13 @@ def get_jv_entries(self): "t2.against_account like %(bank_cash_account)s" if self.bank_cash_account else "1=1" ) + # nosemgrep journal_entries = frappe.db.sql( """ select "Journal Entry" as reference_type, t1.name as reference_name, t1.posting_date, t1.remark as remarks, t2.name as reference_row, - {dr_or_cr} as amount, t2.is_advance, + {dr_or_cr} as amount, t2.is_advance, t2.exchange_rate, t2.account_currency as currency from `tabJournal Entry` t1, `tabJournal Entry Account` t2 @@ -215,26 +215,26 @@ def add_invoice_entries(self, non_reconciled_invoices): inv.currency = entry.get("currency") inv.outstanding_amount = flt(entry.get("outstanding_amount")) - def get_difference_amount(self, allocated_entry): - if allocated_entry.get("reference_type") != "Payment Entry": - return + def get_difference_amount(self, payment_entry, invoice, allocated_amount): + difference_amount = 0 + if invoice.get("exchange_rate") and payment_entry.get("exchange_rate", 1) != invoice.get( + "exchange_rate", 1 + ): + allocated_amount_in_ref_rate = payment_entry.get("exchange_rate", 1) * allocated_amount + allocated_amount_in_inv_rate = invoice.get("exchange_rate", 1) * allocated_amount + difference_amount = allocated_amount_in_ref_rate - allocated_amount_in_inv_rate - dr_or_cr = ( - "credit_in_account_currency" - if erpnext.get_party_account_type(self.party_type) == "Receivable" - else "debit_in_account_currency" - ) - - row = self.get_payment_details(allocated_entry, dr_or_cr) - - doc = frappe.get_doc(allocated_entry.reference_type, allocated_entry.reference_name) - update_reference_in_payment_entry(row, doc, do_not_save=True) - - return doc.difference_amount + return difference_amount @frappe.whitelist() def allocate_entries(self, args): self.validate_entries() + + invoice_exchange_map = self.get_invoice_exchange_map(args.get("invoices")) + default_exchange_gain_loss_account = frappe.get_cached_value( + "Company", self.company, "exchange_gain_loss_account" + ) + entries = [] for pay in args.get("payments"): pay.update({"unreconciled_amount": pay.get("amount")}) @@ -248,7 +248,10 @@ def allocate_entries(self, args): inv["outstanding_amount"] = flt(inv.get("outstanding_amount")) - flt(pay.get("amount")) pay["amount"] = 0 - res.difference_amount = self.get_difference_amount(res) + inv["exchange_rate"] = invoice_exchange_map.get(inv.get("invoice_number")) + 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") if pay.get("amount") == 0: entries.append(res) @@ -278,6 +281,7 @@ def get_allocated_entry(self, pay, inv, allocated_amount): "amount": pay.get("amount"), "allocated_amount": allocated_amount, "difference_amount": pay.get("difference_amount"), + "currency": inv.get("currency"), } ) @@ -300,7 +304,11 @@ def reconcile(self): else: reconciled_entry = entry_list - reconciled_entry.append(self.get_payment_details(row, dr_or_cr)) + payment_details = self.get_payment_details(row, dr_or_cr) + reconciled_entry.append(payment_details) + + if payment_details.difference_amount: + self.make_difference_entry(payment_details) if entry_list: reconcile_against_document(entry_list) @@ -311,6 +319,56 @@ def reconcile(self): msgprint(_("Successfully Reconciled")) self.get_unreconciled_entries() + def make_difference_entry(self, row): + journal_entry = frappe.new_doc("Journal Entry") + journal_entry.voucher_type = "Exchange Gain Or Loss" + journal_entry.company = self.company + journal_entry.posting_date = nowdate() + journal_entry.multi_currency = 1 + + party_account_currency = frappe.get_cached_value( + "Account", self.receivable_payable_account, "account_currency" + ) + difference_account_currency = frappe.get_cached_value( + "Account", row.difference_account, "account_currency" + ) + + # Account Currency has balance + dr_or_cr = "debit" if self.party_type == "Customer" else "debit" + reverse_dr_or_cr = "debit" if dr_or_cr == "credit" else "credit" + + journal_account = frappe._dict( + { + "account": self.receivable_payable_account, + "party_type": self.party_type, + "party": self.party, + "account_currency": party_account_currency, + "exchange_rate": 0, + "cost_center": erpnext.get_default_cost_center(self.company), + "reference_type": row.against_voucher_type, + "reference_name": row.against_voucher, + dr_or_cr: flt(row.difference_amount), + dr_or_cr + "_in_account_currency": 0, + } + ) + + journal_entry.append("accounts", journal_account) + + journal_account = frappe._dict( + { + "account": row.difference_account, + "account_currency": difference_account_currency, + "exchange_rate": 1, + "cost_center": erpnext.get_default_cost_center(self.company), + reverse_dr_or_cr + "_in_account_currency": flt(row.difference_amount), + } + ) + + journal_entry.append("accounts", journal_account) + + journal_entry.save() + journal_entry.submit() + def get_payment_details(self, row, dr_or_cr): return frappe._dict( { @@ -320,6 +378,7 @@ def get_payment_details(self, row, dr_or_cr): "against_voucher_type": row.get("invoice_type"), "against_voucher": row.get("invoice_number"), "account": self.receivable_payable_account, + "exchange_rate": row.get("exchange_rate"), "party_type": self.party_type, "party": self.party, "is_advance": row.get("is_advance"), @@ -344,6 +403,41 @@ def validate_entries(self): if not self.get("payments"): frappe.throw(_("No records found in the Payments table")) + def get_invoice_exchange_map(self, invoices): + sales_invoices = [ + d.get("invoice_number") for d in invoices if d.get("invoice_type") == "Sales Invoice" + ] + purchase_invoices = [ + d.get("invoice_number") for d in invoices if d.get("invoice_type") == "Purchase Invoice" + ] + invoice_exchange_map = frappe._dict() + + if sales_invoices: + sales_invoice_map = frappe._dict( + frappe.db.get_all( + "Sales Invoice", + filters={"name": ("in", sales_invoices)}, + fields=["name", "conversion_rate"], + as_list=1, + ) + ) + + invoice_exchange_map.update(sales_invoice_map) + + if purchase_invoices: + purchase_invoice_map = frappe._dict( + frappe.db.get_all( + "Purchase Invoice", + filters={"name": ("in", purchase_invoices)}, + fields=["name", "conversion_rate"], + as_list=1, + ) + ) + + invoice_exchange_map.update(purchase_invoice_map) + + return invoice_exchange_map + def validate_allocation(self): unreconciled_invoices = frappe._dict() diff --git a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py index 6030134fff2d..2ba90b4da9ff 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py @@ -6,7 +6,7 @@ import frappe from frappe import qb from frappe.tests.utils import FrappeTestCase -from frappe.utils import add_days, nowdate +from frappe.utils import add_days, flt, nowdate from erpnext import get_default_cost_center from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry @@ -75,33 +75,11 @@ def create_item(self): self.item = item if isinstance(item, str) else item.item_code def create_customer(self): - if frappe.db.exists("Customer", "_Test PR Customer"): - self.customer = "_Test PR Customer" - else: - customer = frappe.new_doc("Customer") - customer.customer_name = "_Test PR Customer" - customer.type = "Individual" - customer.save() - self.customer = customer.name - - if frappe.db.exists("Customer", "_Test PR Customer 2"): - self.customer2 = "_Test PR Customer 2" - else: - customer = frappe.new_doc("Customer") - customer.customer_name = "_Test PR Customer 2" - customer.type = "Individual" - customer.save() - self.customer2 = customer.name - - if frappe.db.exists("Customer", "_Test PR Customer 3"): - self.customer3 = "_Test PR Customer 3" - else: - customer = frappe.new_doc("Customer") - customer.customer_name = "_Test PR Customer 3" - customer.type = "Individual" - customer.default_currency = "EUR" - customer.save() - self.customer3 = customer.name + self.customer = make_customer("_Test PR Customer") + self.customer2 = make_customer("_Test PR Customer 2") + self.customer3 = make_customer("_Test PR Customer 3", "EUR") + self.customer4 = make_customer("_Test PR Customer 4", "EUR") + self.customer5 = make_customer("_Test PR Customer 5", "EUR") def create_account(self): account_name = "Debtors EUR" @@ -598,6 +576,156 @@ def test_pr_output_foreign_currency_and_amount(self): self.assertEqual(pr.payments[0].amount, amount) self.assertEqual(pr.payments[0].currency, "EUR") + def test_difference_amount_via_journal_entry(self): + # Make Sale Invoice + si = self.create_sales_invoice( + qty=1, rate=100, posting_date=nowdate(), do_not_save=True, do_not_submit=True + ) + si.customer = self.customer4 + si.currency = "EUR" + si.conversion_rate = 85 + si.debit_to = self.debtors_eur + si.save().submit() + + # Make payment using Journal Entry + je1 = self.create_journal_entry("HDFC - _PR", self.debtors_eur, 100, nowdate()) + je1.multi_currency = 1 + je1.accounts[0].exchange_rate = 1 + je1.accounts[0].credit_in_account_currency = 0 + je1.accounts[0].credit = 0 + je1.accounts[0].debit_in_account_currency = 8000 + je1.accounts[0].debit = 8000 + je1.accounts[1].party_type = "Customer" + je1.accounts[1].party = self.customer4 + je1.accounts[1].exchange_rate = 80 + je1.accounts[1].credit_in_account_currency = 100 + je1.accounts[1].credit = 8000 + je1.accounts[1].debit_in_account_currency = 0 + je1.accounts[1].debit = 0 + je1.save() + je1.submit() + + je2 = self.create_journal_entry("HDFC - _PR", self.debtors_eur, 200, nowdate()) + je2.multi_currency = 1 + je2.accounts[0].exchange_rate = 1 + je2.accounts[0].credit_in_account_currency = 0 + je2.accounts[0].credit = 0 + je2.accounts[0].debit_in_account_currency = 16000 + je2.accounts[0].debit = 16000 + je2.accounts[1].party_type = "Customer" + je2.accounts[1].party = self.customer4 + je2.accounts[1].exchange_rate = 80 + je2.accounts[1].credit_in_account_currency = 200 + je1.accounts[1].credit = 16000 + je1.accounts[1].debit_in_account_currency = 0 + je1.accounts[1].debit = 0 + je2.save() + je2.submit() + + pr = self.create_payment_reconciliation() + pr.party = self.customer4 + pr.receivable_payable_account = self.debtors_eur + pr.get_unreconciled_entries() + + self.assertEqual(len(pr.invoices), 1) + self.assertEqual(len(pr.payments), 2) + + # Test exact payment allocation + invoices = [x.as_dict() for x in pr.invoices] + payments = [pr.payments[0].as_dict()] + pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments})) + + self.assertEqual(pr.allocation[0].allocated_amount, 100) + self.assertEqual(pr.allocation[0].difference_amount, -500) + + # Test partial payment allocation (with excess payment entry) + pr.set("allocation", []) + pr.get_unreconciled_entries() + invoices = [x.as_dict() for x in pr.invoices] + payments = [pr.payments[1].as_dict()] + pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments})) + pr.allocation[0].difference_account = "Exchange Gain/Loss - _PR" + + self.assertEqual(pr.allocation[0].allocated_amount, 100) + self.assertEqual(pr.allocation[0].difference_amount, -500) + + # Check if difference journal entry gets generated for difference amount after reconciliation + pr.reconcile() + total_debit_amount = frappe.db.get_all( + "Journal Entry Account", + {"account": self.debtors_eur, "docstatus": 1, "reference_name": si.name}, + "sum(debit) as amount", + group_by="reference_name", + )[0].amount + + self.assertEqual(flt(total_debit_amount, 2), -500) + + def test_difference_amount_via_payment_entry(self): + # Make Sale Invoice + si = self.create_sales_invoice( + qty=1, rate=100, posting_date=nowdate(), do_not_save=True, do_not_submit=True + ) + si.customer = self.customer5 + si.currency = "EUR" + si.conversion_rate = 85 + si.debit_to = self.debtors_eur + si.save().submit() + + # Make payment using Payment Entry + pe1 = create_payment_entry( + company=self.company, + payment_type="Receive", + party_type="Customer", + party=self.customer5, + paid_from=self.debtors_eur, + paid_to=self.bank, + paid_amount=100, + ) + + pe1.source_exchange_rate = 80 + pe1.received_amount = 8000 + pe1.save() + pe1.submit() + + pe2 = create_payment_entry( + company=self.company, + payment_type="Receive", + party_type="Customer", + party=self.customer5, + paid_from=self.debtors_eur, + paid_to=self.bank, + paid_amount=200, + ) + + pe2.source_exchange_rate = 80 + pe2.received_amount = 16000 + pe2.save() + pe2.submit() + + pr = self.create_payment_reconciliation() + pr.party = self.customer5 + pr.receivable_payable_account = self.debtors_eur + pr.get_unreconciled_entries() + + self.assertEqual(len(pr.invoices), 1) + self.assertEqual(len(pr.payments), 2) + + invoices = [x.as_dict() for x in pr.invoices] + payments = [pr.payments[0].as_dict()] + pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments})) + + self.assertEqual(pr.allocation[0].allocated_amount, 100) + self.assertEqual(pr.allocation[0].difference_amount, -500) + + pr.set("allocation", []) + pr.get_unreconciled_entries() + invoices = [x.as_dict() for x in pr.invoices] + payments = [pr.payments[1].as_dict()] + pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments})) + + self.assertEqual(pr.allocation[0].allocated_amount, 100) + self.assertEqual(pr.allocation[0].difference_amount, -500) + def test_differing_cost_center_on_invoice_and_payment(self): """ Cost Center filter should not affect outstanding amount calculation @@ -618,3 +746,17 @@ def test_differing_cost_center_on_invoice_and_payment(self): # check PR tool output self.assertEqual(len(pr.get("invoices")), 0) self.assertEqual(len(pr.get("payments")), 0) + + +def make_customer(customer_name, currency=None): + if not frappe.db.exists("Customer", customer_name): + customer = frappe.new_doc("Customer") + customer.customer_name = customer_name + customer.type = "Individual" + + if currency: + customer.default_currency = currency + customer.save() + return customer.name + else: + return customer_name diff --git a/erpnext/accounts/doctype/payment_reconciliation_allocation/payment_reconciliation_allocation.json b/erpnext/accounts/doctype/payment_reconciliation_allocation/payment_reconciliation_allocation.json index 6a21692c6ac1..0f7e47acfee4 100644 --- a/erpnext/accounts/doctype/payment_reconciliation_allocation/payment_reconciliation_allocation.json +++ b/erpnext/accounts/doctype/payment_reconciliation_allocation/payment_reconciliation_allocation.json @@ -20,7 +20,9 @@ "section_break_5", "difference_amount", "column_break_7", - "difference_account" + "difference_account", + "exchange_rate", + "currency" ], "fields": [ { @@ -37,7 +39,7 @@ "fieldtype": "Currency", "in_list_view": 1, "label": "Allocated Amount", - "options": "Currency", + "options": "currency", "reqd": 1 }, { @@ -112,7 +114,7 @@ "fieldtype": "Currency", "hidden": 1, "label": "Unreconciled Amount", - "options": "Currency", + "options": "currency", "read_only": 1 }, { @@ -120,7 +122,7 @@ "fieldtype": "Currency", "hidden": 1, "label": "Amount", - "options": "Currency", + "options": "currency", "read_only": 1 }, { @@ -129,11 +131,24 @@ "hidden": 1, "label": "Reference Row", "read_only": 1 + }, + { + "fieldname": "currency", + "fieldtype": "Link", + "hidden": 1, + "label": "Currency", + "options": "Currency" + }, + { + "fieldname": "exchange_rate", + "fieldtype": "Float", + "label": "Exchange Rate", + "read_only": 1 } ], "istable": 1, "links": [], - "modified": "2021-10-06 11:48:59.616562", + "modified": "2022-12-24 21:01:14.882747", "modified_by": "Administrator", "module": "Accounts", "name": "Payment Reconciliation Allocation", @@ -141,5 +156,6 @@ "permissions": [], "sort_field": "modified", "sort_order": "DESC", + "states": [], "track_changes": 1 } \ No newline at end of file diff --git a/erpnext/accounts/doctype/payment_reconciliation_invoice/payment_reconciliation_invoice.json b/erpnext/accounts/doctype/payment_reconciliation_invoice/payment_reconciliation_invoice.json index 00c9e1240c54..c4dbd7e84412 100644 --- a/erpnext/accounts/doctype/payment_reconciliation_invoice/payment_reconciliation_invoice.json +++ b/erpnext/accounts/doctype/payment_reconciliation_invoice/payment_reconciliation_invoice.json @@ -11,7 +11,8 @@ "col_break1", "amount", "outstanding_amount", - "currency" + "currency", + "exchange_rate" ], "fields": [ { @@ -62,11 +63,17 @@ "hidden": 1, "label": "Currency", "options": "Currency" + }, + { + "fieldname": "exchange_rate", + "fieldtype": "Float", + "hidden": 1, + "label": "Exchange Rate" } ], "istable": 1, "links": [], - "modified": "2021-08-24 22:42:40.923179", + "modified": "2022-11-08 18:18:02.502149", "modified_by": "Administrator", "module": "Accounts", "name": "Payment Reconciliation Invoice", @@ -75,5 +82,6 @@ "quick_entry": 1, "sort_field": "modified", "sort_order": "DESC", + "states": [], "track_changes": 1 } \ No newline at end of file diff --git a/erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.json b/erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.json index add07e870d8e..d300ea97abc4 100644 --- a/erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.json +++ b/erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.json @@ -15,7 +15,8 @@ "difference_amount", "sec_break1", "remark", - "currency" + "currency", + "exchange_rate" ], "fields": [ { @@ -91,11 +92,17 @@ "label": "Difference Amount", "options": "currency", "read_only": 1 + }, + { + "fieldname": "exchange_rate", + "fieldtype": "Float", + "hidden": 1, + "label": "Exchange Rate" } ], "istable": 1, "links": [], - "modified": "2021-08-30 10:51:48.140062", + "modified": "2022-11-08 18:18:36.268760", "modified_by": "Administrator", "module": "Accounts", "name": "Payment Reconciliation Payment", @@ -103,5 +110,6 @@ "permissions": [], "quick_entry": 1, "sort_field": "modified", - "sort_order": "DESC" + "sort_order": "DESC", + "states": [] } \ No newline at end of file From 1d045e0458d962e9dd6e1c9d10999e0e38e0f58c Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 9 Jan 2023 13:27:40 +0530 Subject: [PATCH 008/355] ci: bump node in release workflow (backport #33574) (#33575) * ci: bump node in release workflow (#33574) [skip ci] (cherry picked from commit 1ad1fc4c7db01c25bce125dc1f5a598394ba7b5c) # Conflicts: # .github/workflows/release.yml * chore: conflicts [skip ci] Co-authored-by: Ankush Menat --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d61caa98708c..ccd712065dcd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v2 with: - node-version: 16 + node-version: 18 - name: Setup dependencies run: | From 1d26d7c077db8bba184abb177531fb5db75a48a0 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 9 Jan 2023 22:22:33 +0530 Subject: [PATCH 009/355] chore: patch property setters for JE with new entry type (backport #33569) (#33583) chore: patch property setters for JE with new entry type (cherry picked from commit 789e448f0ebcd8345389e66ab3b27c653bb2c145) Co-authored-by: ruthra kumar --- erpnext/patches.txt | 3 ++- .../update_entry_type_for_journal_entry.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 erpnext/patches/v14_0/update_entry_type_for_journal_entry.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index f7d2dedb1b32..1d71a86ef289 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -320,4 +320,5 @@ erpnext.patches.v13_0.update_schedule_type_in_loans erpnext.patches.v14_0.update_partial_tds_fields erpnext.patches.v14_0.create_incoterms_and_migrate_shipment erpnext.patches.v14_0.setup_clear_repost_logs -erpnext.patches.v14_0.create_accounting_dimensions_for_payment_request \ No newline at end of file +erpnext.patches.v14_0.create_accounting_dimensions_for_payment_request +erpnext.patches.v14_0.update_entry_type_for_journal_entry diff --git a/erpnext/patches/v14_0/update_entry_type_for_journal_entry.py b/erpnext/patches/v14_0/update_entry_type_for_journal_entry.py new file mode 100644 index 000000000000..bce92555577e --- /dev/null +++ b/erpnext/patches/v14_0/update_entry_type_for_journal_entry.py @@ -0,0 +1,18 @@ +import frappe + + +def execute(): + """ + Update Propery Setters for Journal Entry with new 'Entry Type' + """ + new_voucher_type = "Exchange Gain Or Loss" + prop_setter = frappe.db.get_list( + "Property Setter", + filters={"doc_type": "Journal Entry", "field_name": "voucher_type", "property": "options"}, + ) + if prop_setter: + property_setter_doc = frappe.get_doc("Property Setter", prop_setter[0].get("name")) + + if new_voucher_type not in property_setter_doc.value.split("\n"): + property_setter_doc.value += "\n" + new_voucher_type + property_setter_doc.save() From b96a97f6b4811ad499940a2525357539b9eca46c Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Fri, 6 Jan 2023 16:21:20 +0530 Subject: [PATCH 010/355] fix: better handling of duplicate bundle items (cherry picked from commit c717e87c9e2723b1b2751afa37ca6b52f95b6001) --- erpnext/stock/doctype/packed_item/packed_item.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/packed_item/packed_item.py b/erpnext/stock/doctype/packed_item/packed_item.py index d60675166604..dbd8de4fcb0e 100644 --- a/erpnext/stock/doctype/packed_item/packed_item.py +++ b/erpnext/stock/doctype/packed_item/packed_item.py @@ -83,8 +83,8 @@ def reset_packing_list(doc): # 1. items were deleted # 2. if bundle item replaced by another item (same no. of items but different items) # we maintain list to track recurring item rows as well - items_before_save = [item.item_code for item in doc_before_save.get("items")] - items_after_save = [item.item_code for item in doc.get("items")] + items_before_save = [(item.name, item.item_code) for item in doc_before_save.get("items")] + items_after_save = [(item.name, item.item_code) for item in doc.get("items")] reset_table = items_before_save != items_after_save else: # reset: if via Update Items OR From c6c3ac3e55e5a2b4e17793a120c4a9a840a43269 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 9 Jan 2023 23:11:34 +0530 Subject: [PATCH 011/355] fix: incorrect warehouse and selling amount on bundled products (#33549) fix: incorrect warehouse and selling amount on bundled products (#33549) (cherry picked from commit bbe5e5d9d6c51f0600b49261a2a9f52ebb6ee67e) Co-authored-by: ruthra kumar --- .../report/gross_profit/gross_profit.py | 41 +++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py index ba947f392f81..646fe85bac95 100644 --- a/erpnext/accounts/report/gross_profit/gross_profit.py +++ b/erpnext/accounts/report/gross_profit/gross_profit.py @@ -439,6 +439,18 @@ def process(self): row.delivery_note, frappe._dict() ) row.item_row = row.dn_detail + # Update warehouse and base_amount from 'Packed Item' List + if product_bundles and not row.parent: + # For Packed Items, row.parent_invoice will be the Bundle name + product_bundle = product_bundles.get(row.parent_invoice) + if product_bundle: + for packed_item in product_bundle: + if ( + packed_item.get("item_code") == row.item_code + and packed_item.get("parent_detail_docname") == row.item_row + ): + row.warehouse = packed_item.warehouse + row.base_amount = packed_item.base_amount # get buying amount if row.item_code in product_bundles: @@ -589,7 +601,9 @@ def get_buying_amount_from_product_bundle(self, row, product_bundle): buying_amount = 0.0 for packed_item in product_bundle: if packed_item.get("parent_detail_docname") == row.item_row: - buying_amount += self.get_buying_amount(row, packed_item.item_code) + packed_item_row = row.copy() + packed_item_row.warehouse = packed_item.warehouse + buying_amount += self.get_buying_amount(packed_item_row, packed_item.item_code) return flt(buying_amount, self.currency_precision) @@ -922,12 +936,25 @@ def load_stock_ledger_entries(self): def load_product_bundle(self): self.product_bundles = {} - for d in frappe.db.sql( - """select parenttype, parent, parent_item, - item_code, warehouse, -1*qty as total_qty, parent_detail_docname - from `tabPacked Item` where docstatus=1""", - as_dict=True, - ): + pki = qb.DocType("Packed Item") + + pki_query = ( + frappe.qb.from_(pki) + .select( + pki.parenttype, + pki.parent, + pki.parent_item, + pki.item_code, + pki.warehouse, + (-1 * pki.qty).as_("total_qty"), + pki.rate, + (pki.rate * pki.qty).as_("base_amount"), + pki.parent_detail_docname, + ) + .where(pki.docstatus == 1) + ) + + for d in pki_query.run(as_dict=True): self.product_bundles.setdefault(d.parenttype, frappe._dict()).setdefault( d.parent, frappe._dict() ).setdefault(d.parent_item, []).append(d) From a92b4e7255e173873fa285dc2f5fca414dc601b8 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 10 Jan 2023 09:01:51 +0530 Subject: [PATCH 012/355] fix(stock entry): wrong valuation rate in repack (#33579) fix(stock entry): wrong valuation rate in repack (cherry picked from commit 99f5e869e02d0cba39d3cdd970dd7c63e641eaa1) Co-authored-by: safvanhuzain --- erpnext/stock/doctype/stock_entry/stock_entry.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index a5264ac195af..d90a74f7b4ad 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -998,7 +998,9 @@ def validate_subcontracting_order(self): ) def mark_finished_and_scrap_items(self): - if any([d.item_code for d in self.items if (d.is_finished_item and d.t_warehouse)]): + if self.purpose != "Repack" and any( + [d.item_code for d in self.items if (d.is_finished_item and d.t_warehouse)] + ): return finished_item = self.get_finished_item() From d2e3701b1a0221b6638f433f6acfd72fed526e06 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 10 Jan 2023 09:02:15 +0530 Subject: [PATCH 013/355] fix: Timeout error while saving the purchase invoice (#33577) * fix: timeout error in the Purchase Invoice (cherry picked from commit 7249657d15323ba089f2aa20e77e6bd5aae4ba76) * feat: provision to disable get last purchase rate fix: set_incoming_rate condition (cherry picked from commit d1d4671320cf4f5b86e6cdeb4624e0fd4132caf7) * fix: linters issue (cherry picked from commit 05df8579cd65b04fc10c9904b53832bf360d8457) * test: test case to check disable last purchase rate (cherry picked from commit ec171fc7c13f39f4a896c28ad8173fccbc888289) Co-authored-by: Rohit Waghchaure --- .../buying_settings/buying_settings.json | 19 +++++--- erpnext/controllers/buying_controller.py | 11 ++++- erpnext/stock/doctype/item/item.py | 9 ++-- .../purchase_receipt/test_purchase_receipt.py | 43 +++++++++++++++++++ erpnext/stock/get_item_details.py | 7 ++- 5 files changed, 74 insertions(+), 15 deletions(-) diff --git a/erpnext/buying/doctype/buying_settings/buying_settings.json b/erpnext/buying/doctype/buying_settings/buying_settings.json index 28158a31b94f..34417f7ac3a9 100644 --- a/erpnext/buying/doctype/buying_settings/buying_settings.json +++ b/erpnext/buying/doctype/buying_settings/buying_settings.json @@ -9,8 +9,8 @@ "supplier_and_price_defaults_section", "supp_master_name", "supplier_group", - "column_break_4", "buying_price_list", + "column_break_4", "maintain_same_rate_action", "role_to_override_stop_action", "transaction_settings_section", @@ -20,6 +20,7 @@ "maintain_same_rate", "allow_multiple_items", "bill_for_rejected_quantity_in_purchase_invoice", + "disable_last_purchase_rate", "subcontract", "backflush_raw_materials_of_subcontract_based_on", "column_break_11", @@ -71,7 +72,7 @@ }, { "fieldname": "subcontract", - "fieldtype": "Section Break", + "fieldtype": "Tab Break", "label": "Subcontracting Settings" }, { @@ -118,8 +119,8 @@ }, { "fieldname": "supplier_and_price_defaults_section", - "fieldtype": "Section Break", - "label": "Supplier and Price Defaults" + "fieldtype": "Tab Break", + "label": "Naming Series and Price Defaults" }, { "fieldname": "column_break_4", @@ -127,12 +128,18 @@ }, { "fieldname": "transaction_settings_section", - "fieldtype": "Section Break", + "fieldtype": "Tab Break", "label": "Transaction Settings" }, { "fieldname": "column_break_12", "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "disable_last_purchase_rate", + "fieldtype": "Check", + "label": "Disable Last Purchase Rate" } ], "icon": "fa fa-cog", @@ -140,7 +147,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2022-09-27 10:50:27.050252", + "modified": "2023-01-09 17:08:28.828173", "modified_by": "Administrator", "module": "Buying", "name": "Buying Settings", diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py index 2efa54573685..445620a1246f 100644 --- a/erpnext/controllers/buying_controller.py +++ b/erpnext/controllers/buying_controller.py @@ -278,6 +278,9 @@ def set_incoming_rate(self): if self.doctype not in ("Purchase Receipt", "Purchase Invoice", "Purchase Order"): return + if not self.is_internal_transfer(): + return + ref_doctype_map = { "Purchase Order": "Sales Order Item", "Purchase Receipt": "Delivery Note Item", @@ -548,7 +551,9 @@ def on_submit(self): self.process_fixed_asset() self.update_fixed_asset(field) - if self.doctype in ["Purchase Order", "Purchase Receipt"]: + if self.doctype in ["Purchase Order", "Purchase Receipt"] and not frappe.db.get_single_value( + "Buying Settings", "disable_last_purchase_rate" + ): update_last_purchase_rate(self, is_submit=1) def on_cancel(self): @@ -557,7 +562,9 @@ def on_cancel(self): if self.get("is_return"): return - if self.doctype in ["Purchase Order", "Purchase Receipt"]: + if self.doctype in ["Purchase Order", "Purchase Receipt"] and not frappe.db.get_single_value( + "Buying Settings", "disable_last_purchase_rate" + ): update_last_purchase_rate(self, is_submit=0) if self.doctype in ["Purchase Receipt", "Purchase Invoice"]: diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py index 20bc9d9b2c92..423b9defc191 100644 --- a/erpnext/stock/doctype/item/item.py +++ b/erpnext/stock/doctype/item/item.py @@ -164,10 +164,7 @@ def set_opening_stock(self): if not self.is_stock_item or self.has_serial_no or self.has_batch_no: return - if not self.valuation_rate and self.standard_rate: - self.valuation_rate = self.standard_rate - - if not self.valuation_rate and not self.is_customer_provided_item: + if not self.valuation_rate and not self.standard_rate and not self.is_customer_provided_item: frappe.throw(_("Valuation Rate is mandatory if Opening Stock entered")) from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry @@ -192,7 +189,7 @@ def set_opening_stock(self): item_code=self.name, target=default_warehouse, qty=self.opening_stock, - rate=self.valuation_rate, + rate=self.valuation_rate or self.standard_rate, company=default.company, posting_date=getdate(), posting_time=nowtime(), @@ -279,7 +276,7 @@ def validate_item_tax_net_rate_range(self): frappe.throw(_("Row #{0}: Maximum Net Rate cannot be greater than Minimum Net Rate")) def update_template_tables(self): - template = frappe.get_doc("Item", self.variant_of) + template = frappe.get_cached_doc("Item", self.variant_of) # add item taxes from template for d in template.get("taxes"): diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py index dc9f2b21177c..b6341466f876 100644 --- a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py @@ -1501,6 +1501,49 @@ def test_batch_expiry_for_purchase_receipt(self): self.assertTrue(return_pi.docstatus == 1) + def test_disable_last_purchase_rate(self): + from erpnext.stock.get_item_details import get_item_details + + item = make_item( + "_Test Disable Last Purchase Rate", + {"is_purchase_item": 1, "is_stock_item": 1}, + ) + + frappe.db.set_single_value("Buying Settings", "disable_last_purchase_rate", 1) + + pr = make_purchase_receipt( + qty=1, + rate=100, + item_code=item.name, + ) + + args = pr.items[0].as_dict() + args.update( + { + "supplier": pr.supplier, + "doctype": pr.doctype, + "conversion_rate": pr.conversion_rate, + "currency": pr.currency, + "company": pr.company, + "posting_date": pr.posting_date, + "posting_time": pr.posting_time, + } + ) + + res = get_item_details(args) + self.assertEqual(res.get("last_purchase_rate"), 0) + + frappe.db.set_single_value("Buying Settings", "disable_last_purchase_rate", 0) + + pr = make_purchase_receipt( + qty=1, + rate=100, + item_code=item.name, + ) + + res = get_item_details(args) + self.assertEqual(res.get("last_purchase_rate"), 100) + def prepare_data_for_internal_transfer(): from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_internal_supplier diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 8561dc2e91e1..f7fcb30acd25 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -411,7 +411,9 @@ def get_basic_details(args, item, overwrite_warehouse=True): args.stock_qty = out.stock_qty # calculate last purchase rate - if args.get("doctype") in purchase_doctypes: + if args.get("doctype") in purchase_doctypes and not frappe.db.get_single_value( + "Buying Settings", "disable_last_purchase_rate" + ): from erpnext.buying.doctype.purchase_order.purchase_order import item_last_purchase_rate out.last_purchase_rate = item_last_purchase_rate( @@ -813,6 +815,9 @@ def get_price_list_rate(args, item_doc, out=None): flt(price_list_rate) * flt(args.plc_conversion_rate) / flt(args.conversion_rate) ) + if frappe.db.get_single_value("Buying Settings", "disable_last_purchase_rate"): + return out + if not out.price_list_rate and args.transaction_type == "buying": from erpnext.stock.doctype.item.item import get_last_purchase_details From 914e2fdded1bfa155b3100b22ac68d762415063c Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 10 Jan 2023 09:02:50 +0530 Subject: [PATCH 014/355] fix: customer/supplier quick entry dialog (#33496) fix: customer/supplier quick entry dialog (#33496) * fix: readonly primary contact fields. * refactor: supplier and customer quick entry form into common class. (cherry picked from commit 6bc8bb26b693182dbcdd296cfe2cd04b0d1fdf3d) Co-authored-by: Devin Slauenwhite --- erpnext/public/js/erpnext.bundle.js | 1 + .../js/utils/contact_address_quick_entry.js | 100 ++++++++++++++++++ .../public/js/utils/customer_quick_entry.js | 80 +------------- .../public/js/utils/supplier_quick_entry.js | 76 +------------ 4 files changed, 103 insertions(+), 154 deletions(-) create mode 100644 erpnext/public/js/utils/contact_address_quick_entry.js diff --git a/erpnext/public/js/erpnext.bundle.js b/erpnext/public/js/erpnext.bundle.js index 14a088e405c9..7b230af26990 100644 --- a/erpnext/public/js/erpnext.bundle.js +++ b/erpnext/public/js/erpnext.bundle.js @@ -13,6 +13,7 @@ import "./help_links"; import "./agriculture/ternary_plot"; import "./templates/item_quick_entry.html"; import "./utils/item_quick_entry"; +import "./utils/contact_address_quick_entry"; import "./utils/customer_quick_entry"; import "./utils/supplier_quick_entry"; import "./call_popup/call_popup"; diff --git a/erpnext/public/js/utils/contact_address_quick_entry.js b/erpnext/public/js/utils/contact_address_quick_entry.js new file mode 100644 index 000000000000..adabf08c2036 --- /dev/null +++ b/erpnext/public/js/utils/contact_address_quick_entry.js @@ -0,0 +1,100 @@ +frappe.provide('frappe.ui.form'); + +frappe.ui.form.ContactAddressQuickEntryForm = class ContactAddressQuickEntryForm extends frappe.ui.form.QuickEntryForm { + constructor(doctype, after_insert, init_callback, doc, force) { + super(doctype, after_insert, init_callback, doc, force); + this.skip_redirect_on_error = true; + } + + render_dialog() { + this.mandatory = this.mandatory.concat(this.get_variant_fields()); + super.render_dialog(); + } + + insert() { + /** + * Using alias fieldnames because the doctype definition define "email_id" and "mobile_no" as readonly fields. + * Therefor, resulting in the fields being "hidden". + */ + const map_field_names = { + "email_address": "email_id", + "mobile_number": "mobile_no", + }; + + Object.entries(map_field_names).forEach(([fieldname, new_fieldname]) => { + this.dialog.doc[new_fieldname] = this.dialog.doc[fieldname]; + delete this.dialog.doc[fieldname]; + }); + + return super.insert(); + } + + get_variant_fields() { + var variant_fields = [{ + fieldtype: "Section Break", + label: __("Primary Contact Details"), + collapsible: 1 + }, + { + label: __("Email Id"), + fieldname: "email_address", + fieldtype: "Data", + options: "Email", + }, + { + fieldtype: "Column Break" + }, + { + label: __("Mobile Number"), + fieldname: "mobile_number", + fieldtype: "Data" + }, + { + fieldtype: "Section Break", + label: __("Primary Address Details"), + collapsible: 1 + }, + { + label: __("Address Line 1"), + fieldname: "address_line1", + fieldtype: "Data" + }, + { + label: __("Address Line 2"), + fieldname: "address_line2", + fieldtype: "Data" + }, + { + label: __("ZIP Code"), + fieldname: "pincode", + fieldtype: "Data" + }, + { + fieldtype: "Column Break" + }, + { + label: __("City"), + fieldname: "city", + fieldtype: "Data" + }, + { + label: __("State"), + fieldname: "state", + fieldtype: "Data" + }, + { + label: __("Country"), + fieldname: "country", + fieldtype: "Link", + options: "Country" + }, + { + label: __("Customer POS Id"), + fieldname: "customer_pos_id", + fieldtype: "Data", + hidden: 1 + }]; + + return variant_fields; + } +} diff --git a/erpnext/public/js/utils/customer_quick_entry.js b/erpnext/public/js/utils/customer_quick_entry.js index d2c5c721cc48..b2532085f652 100644 --- a/erpnext/public/js/utils/customer_quick_entry.js +++ b/erpnext/public/js/utils/customer_quick_entry.js @@ -1,81 +1,3 @@ frappe.provide('frappe.ui.form'); -frappe.ui.form.CustomerQuickEntryForm = class CustomerQuickEntryForm extends frappe.ui.form.QuickEntryForm { - constructor(doctype, after_insert, init_callback, doc, force) { - super(doctype, after_insert, init_callback, doc, force); - this.skip_redirect_on_error = true; - } - - render_dialog() { - this.mandatory = this.mandatory.concat(this.get_variant_fields()); - super.render_dialog(); - } - - get_variant_fields() { - var variant_fields = [{ - fieldtype: "Section Break", - label: __("Primary Contact Details"), - collapsible: 1 - }, - { - label: __("Email Id"), - fieldname: "email_id", - fieldtype: "Data" - }, - { - fieldtype: "Column Break" - }, - { - label: __("Mobile Number"), - fieldname: "mobile_no", - fieldtype: "Data" - }, - { - fieldtype: "Section Break", - label: __("Primary Address Details"), - collapsible: 1 - }, - { - label: __("Address Line 1"), - fieldname: "address_line1", - fieldtype: "Data" - }, - { - label: __("Address Line 2"), - fieldname: "address_line2", - fieldtype: "Data" - }, - { - label: __("ZIP Code"), - fieldname: "pincode", - fieldtype: "Data" - }, - { - fieldtype: "Column Break" - }, - { - label: __("City"), - fieldname: "city", - fieldtype: "Data" - }, - { - label: __("State"), - fieldname: "state", - fieldtype: "Data" - }, - { - label: __("Country"), - fieldname: "country", - fieldtype: "Link", - options: "Country" - }, - { - label: __("Customer POS Id"), - fieldname: "customer_pos_id", - fieldtype: "Data", - hidden: 1 - }]; - - return variant_fields; - } -} +frappe.ui.form.CustomerQuickEntryForm = frappe.ui.form.ContactAddressQuickEntryForm; diff --git a/erpnext/public/js/utils/supplier_quick_entry.js b/erpnext/public/js/utils/supplier_quick_entry.js index 8d591a96510c..687b01454a22 100644 --- a/erpnext/public/js/utils/supplier_quick_entry.js +++ b/erpnext/public/js/utils/supplier_quick_entry.js @@ -1,77 +1,3 @@ frappe.provide('frappe.ui.form'); -frappe.ui.form.SupplierQuickEntryForm = class SupplierQuickEntryForm extends frappe.ui.form.QuickEntryForm { - constructor(doctype, after_insert, init_callback, doc, force) { - super(doctype, after_insert, init_callback, doc, force); - this.skip_redirect_on_error = true; - } - - render_dialog() { - this.mandatory = this.mandatory.concat(this.get_variant_fields()); - super.render_dialog(); - } - - get_variant_fields() { - var variant_fields = [ - { - fieldtype: "Section Break", - label: __("Primary Contact Details"), - collapsible: 1 - }, - { - label: __("Email Id"), - fieldname: "email_id", - fieldtype: "Data" - }, - { - fieldtype: "Column Break" - }, - { - label: __("Mobile Number"), - fieldname: "mobile_no", - fieldtype: "Data" - }, - { - fieldtype: "Section Break", - label: __("Primary Address Details"), - collapsible: 1 - }, - { - label: __("Address Line 1"), - fieldname: "address_line1", - fieldtype: "Data" - }, - { - label: __("Address Line 2"), - fieldname: "address_line2", - fieldtype: "Data" - }, - { - label: __("ZIP Code"), - fieldname: "pincode", - fieldtype: "Data" - }, - { - fieldtype: "Column Break" - }, - { - label: __("City"), - fieldname: "city", - fieldtype: "Data" - }, - { - label: __("State"), - fieldname: "state", - fieldtype: "Data" - }, - { - label: __("Country"), - fieldname: "country", - fieldtype: "Link", - options: "Country" - } - ]; - - return variant_fields; - } -}; +frappe.ui.form.SupplierQuickEntryForm = frappe.ui.form.ContactAddressQuickEntryForm; From f5015750e4451201c9f9b444a1e2590e8fb892eb Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Tue, 10 Jan 2023 09:54:15 +0530 Subject: [PATCH 015/355] perf: Drop `name` part from posting sort index (#33551) (cherry picked from commit 8a56df695d9fd26f7c78ea0ebb86501ae8b6b1d1) # Conflicts: # erpnext/patches.txt --- erpnext/patches.txt | 5 +++++ .../patches/v13_0/drop_unused_sle_index_parts.py | 14 ++++++++++++++ .../stock_ledger_entry/stock_ledger_entry.py | 11 +++-------- 3 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 erpnext/patches/v13_0/drop_unused_sle_index_parts.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 1d71a86ef289..3e6e6e008bed 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -315,6 +315,11 @@ 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 +<<<<<<< HEAD +======= +erpnext.patches.v13_0.update_schedule_type_in_loans +erpnext.patches.v13_0.drop_unused_sle_index_parts +>>>>>>> 8a56df695d (perf: Drop `name` part from posting sort index (#33551)) erpnext.patches.v14_0.create_accounting_dimensions_for_asset_capitalization erpnext.patches.v13_0.update_schedule_type_in_loans erpnext.patches.v14_0.update_partial_tds_fields diff --git a/erpnext/patches/v13_0/drop_unused_sle_index_parts.py b/erpnext/patches/v13_0/drop_unused_sle_index_parts.py new file mode 100644 index 000000000000..fa8a98ce16ca --- /dev/null +++ b/erpnext/patches/v13_0/drop_unused_sle_index_parts.py @@ -0,0 +1,14 @@ +import frappe + +from erpnext.stock.doctype.stock_ledger_entry.stock_ledger_entry import on_doctype_update + + +def execute(): + try: + frappe.db.sql_ddl("ALTER TABLE `tabStock Ledger Entry` DROP INDEX `posting_sort_index`") + except Exception: + frappe.log_error("Failed to drop index") + return + + # Recreate indexes + on_doctype_update() diff --git a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py index c64370dcdf28..052f7781c130 100644 --- a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py +++ b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py @@ -221,14 +221,9 @@ def on_cancel(self): def on_doctype_update(): - if not frappe.db.has_index("tabStock Ledger Entry", "posting_sort_index"): - frappe.db.commit() - frappe.db.add_index( - "Stock Ledger Entry", - fields=["posting_date", "posting_time", "name"], - index_name="posting_sort_index", - ) - + frappe.db.add_index( + "Stock Ledger Entry", fields=["posting_date", "posting_time"], index_name="posting_sort_index" + ) frappe.db.add_index("Stock Ledger Entry", ["voucher_no", "voucher_type"]) frappe.db.add_index("Stock Ledger Entry", ["batch_no", "item_code", "warehouse"]) frappe.db.add_index("Stock Ledger Entry", ["warehouse", "item_code"], "item_warehouse") From 44a95da8ab7cd97cf26bf4bc5b55b5b8309895cb Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 10 Jan 2023 09:55:12 +0530 Subject: [PATCH 016/355] fix(accounts): currency fields no longer read as strings by validation function in Payment Entry (#33535) fix(accounts): currency fields no longer read as strings by validation function in Payment Entry (#33535) explicitly cast paid_amount and received_amount to float in the Payment Entry set_unallocated_amount validation function (cherry picked from commit 4d5067d6d4e187feacc4b02d22de5c5f3ef4d051) Co-authored-by: Gughan Ravikumar --- erpnext/accounts/doctype/payment_entry/payment_entry.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index 5dbc91654f97..ab458caeb5d1 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -622,7 +622,7 @@ def set_unallocated_amount(self): self.payment_type == "Receive" and self.base_total_allocated_amount < self.base_received_amount + total_deductions and self.total_allocated_amount - < self.paid_amount + (total_deductions / self.source_exchange_rate) + < flt(self.paid_amount) + (total_deductions / self.source_exchange_rate) ): self.unallocated_amount = ( self.base_received_amount + total_deductions - self.base_total_allocated_amount @@ -632,7 +632,7 @@ def set_unallocated_amount(self): self.payment_type == "Pay" and self.base_total_allocated_amount < (self.base_paid_amount - total_deductions) and self.total_allocated_amount - < self.received_amount + (total_deductions / self.target_exchange_rate) + < flt(self.received_amount) + (total_deductions / self.target_exchange_rate) ): self.unallocated_amount = ( self.base_paid_amount - (total_deductions + self.base_total_allocated_amount) From 955b487296b5d63e79bc17e9a3129521e54b60a8 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Tue, 10 Jan 2023 10:44:38 +0530 Subject: [PATCH 017/355] chore: resolve conflicts --- erpnext/patches.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 3e6e6e008bed..f4b1a06aea8d 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -315,11 +315,7 @@ 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 -<<<<<<< HEAD -======= -erpnext.patches.v13_0.update_schedule_type_in_loans erpnext.patches.v13_0.drop_unused_sle_index_parts ->>>>>>> 8a56df695d (perf: Drop `name` part from posting sort index (#33551)) erpnext.patches.v14_0.create_accounting_dimensions_for_asset_capitalization erpnext.patches.v13_0.update_schedule_type_in_loans erpnext.patches.v14_0.update_partial_tds_fields From ab0a2b427291cd381f885dc46b62dcd67bada195 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 10 Jan 2023 10:59:50 +0530 Subject: [PATCH 018/355] fix: don't check other warehouse ledgers to calculate valuation rate (cherry picked from commit ef2bf3c22350351c8ddbc375c4d04a1f48854ed5) --- erpnext/stock/stock_ledger.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index 55a11a186716..5d75bfd05a3f 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -1270,20 +1270,6 @@ def get_valuation_rate( (item_code, warehouse, voucher_no, voucher_type), ) - if not last_valuation_rate: - # Get valuation rate from last sle for the item against any warehouse - last_valuation_rate = frappe.db.sql( - """select valuation_rate - from `tabStock Ledger Entry` force index (item_code) - where - item_code = %s - AND valuation_rate > 0 - AND is_cancelled = 0 - AND NOT(voucher_no = %s AND voucher_type = %s) - order by posting_date desc, posting_time desc, name desc limit 1""", - (item_code, voucher_no, voucher_type), - ) - if last_valuation_rate: return flt(last_valuation_rate[0][0]) From e995e952b576a0aa1e4415e7dda78ea4518bca49 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 10 Jan 2023 22:18:59 +0530 Subject: [PATCH 019/355] fix: Incorrect exchange rate in payment entries (#33481) fix: Incorrect exchange rate in payment entries (#33481) * fix: Incorrect exchange rate in payment entries * test: Update failing tests (cherry picked from commit 0ed938a49020d1d892d9727fbeac5a88b996e71c) Co-authored-by: Deepesh Garg --- erpnext/accounts/doctype/payment_entry/payment_entry.py | 2 +- .../buying/doctype/purchase_order/test_purchase_order.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index ab458caeb5d1..bc2a1e507938 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -247,7 +247,7 @@ def set_exchange_rate(self, ref_doc=None): self.set_target_exchange_rate(ref_doc) def set_source_exchange_rate(self, ref_doc=None): - if self.paid_from and not self.source_exchange_rate: + if self.paid_from: if self.paid_from_account_currency == self.company_currency: self.source_exchange_rate = 1 else: diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py index 291d756a4157..572d9d3865c1 100644 --- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py @@ -743,9 +743,9 @@ def test_advance_paid_upon_payment_entry_cancellation(self): pe = get_payment_entry("Purchase Order", po_doc.name) pe.mode_of_payment = "Cash" pe.paid_from = "Cash - _TC" - pe.source_exchange_rate = 80 - pe.target_exchange_rate = 1 - pe.paid_amount = po_doc.grand_total + pe.source_exchange_rate = 1 + pe.target_exchange_rate = 80 + pe.paid_amount = po_doc.base_grand_total pe.save(ignore_permissions=True) pe.submit() From 34df9ab7d52349f9b071609e1d4bc8d4acea88d7 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 10 Jan 2023 22:19:24 +0530 Subject: [PATCH 020/355] fix: RFQ emails not sent with pdf attachment (#33604) fix: RFQ emails not sent with pdf attachment (#33604) (cherry picked from commit e0f5ecdad6d181ce3c69afc2cab7df832e27baa4) Co-authored-by: Smit Vora --- .../doctype/request_for_quotation/request_for_quotation.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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 dbc364495705..8e9ded98421a 100644 --- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py +++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py @@ -216,6 +216,7 @@ def send_email(self, data, sender, subject, message, attachments): recipients=data.email_id, sender=sender, attachments=attachments, + print_format=self.meta.default_print_format or "Standard", send_email=True, doctype=self.doctype, name=self.name, @@ -224,9 +225,7 @@ def send_email(self, data, sender, subject, message, attachments): frappe.msgprint(_("Email Sent to Supplier {0}").format(data.supplier)) def get_attachments(self): - attachments = [d.name for d in get_attachments(self.doctype, self.name)] - attachments.append(frappe.attach_print(self.doctype, self.name, doc=self)) - return attachments + return [d.name for d in get_attachments(self.doctype, self.name)] def update_rfq_supplier_status(self, sup_name=None): for supplier in self.suppliers: From 1b3df094afe4456f5f1d7b915e3fe465f9841518 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 10 Jan 2023 17:48:26 +0000 Subject: [PATCH 021/355] chore(release): Bumped to Version 14.12.1 ## [14.12.1](https://github.com/frappe/erpnext/compare/v14.12.0...v14.12.1) (2023-01-10) ### Bug Fixes * **accounts:** currency fields no longer read as strings by validation function in Payment Entry ([#33535](https://github.com/frappe/erpnext/issues/33535)) ([44a95da](https://github.com/frappe/erpnext/commit/44a95da8ab7cd97cf26bf4bc5b55b5b8309895cb)) * better handling of duplicate bundle items ([b96a97f](https://github.com/frappe/erpnext/commit/b96a97f6b4811ad499940a2525357539b9eca46c)) * customer/supplier quick entry dialog ([#33496](https://github.com/frappe/erpnext/issues/33496)) ([914e2fd](https://github.com/frappe/erpnext/commit/914e2fdded1bfa155b3100b22ac68d762415063c)) * don't check other warehouse ledgers to calculate valuation rate ([ab0a2b4](https://github.com/frappe/erpnext/commit/ab0a2b427291cd381f885dc46b62dcd67bada195)) * Exchange gain and loss booking on multi-currency invoice reconciliation ([#32900](https://github.com/frappe/erpnext/issues/32900)) ([fe82ebc](https://github.com/frappe/erpnext/commit/fe82ebcc38b1eed26a6b722aadfa304f895694b3)) * Exchange gain and loss booking on multi-currency invoice reconciliation ([#32900](https://github.com/frappe/erpnext/issues/32900)) ([259639a](https://github.com/frappe/erpnext/commit/259639a4563107a15d87289287de77a2a7b6b611)) * Incorrect exchange rate in payment entries ([#33481](https://github.com/frappe/erpnext/issues/33481)) ([e995e95](https://github.com/frappe/erpnext/commit/e995e952b576a0aa1e4415e7dda78ea4518bca49)) * incorrect status in the work order ([2658fc9](https://github.com/frappe/erpnext/commit/2658fc9f9b022cac6806ef4aa1152c392c9afc0f)) * incorrect warehouse and selling amount on bundled products ([#33549](https://github.com/frappe/erpnext/issues/33549)) ([c6c3ac3](https://github.com/frappe/erpnext/commit/c6c3ac3e55e5a2b4e17793a120c4a9a840a43269)) * RFQ emails not sent with pdf attachment ([#33604](https://github.com/frappe/erpnext/issues/33604)) ([34df9ab](https://github.com/frappe/erpnext/commit/34df9ab7d52349f9b071609e1d4bc8d4acea88d7)) * **stock entry:** wrong valuation rate in repack ([#33579](https://github.com/frappe/erpnext/issues/33579)) ([a92b4e7](https://github.com/frappe/erpnext/commit/a92b4e7255e173873fa285dc2f5fca414dc601b8)) * Timeout error while saving the purchase invoice ([#33577](https://github.com/frappe/erpnext/issues/33577)) ([d2e3701](https://github.com/frappe/erpnext/commit/d2e3701b1a0221b6638f433f6acfd72fed526e06)) ### Performance Improvements * Drop `name` part from posting sort index ([#33551](https://github.com/frappe/erpnext/issues/33551)) ([f501575](https://github.com/frappe/erpnext/commit/f5015750e4451201c9f9b444a1e2590e8fb892eb)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 4aa7b4fd90dd..e3f67077086d 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.12.0" +__version__ = "14.12.1" def get_default_company(user=None): From 5869fcbd861fbd5202c24badd06fa2a80b4bc820 Mon Sep 17 00:00:00 2001 From: Smit Vora Date: Wed, 11 Jan 2023 05:21:13 +0000 Subject: [PATCH 022/355] fix: better comparision of difference value between stock and account (cherry picked from commit be05aea101fe34de22bd3ff14b71daa7fcf5af29) --- .../stock_and_account_value_comparison.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/report/stock_and_account_value_comparison/stock_and_account_value_comparison.py b/erpnext/stock/report/stock_and_account_value_comparison/stock_and_account_value_comparison.py index 99f820ecac62..106e877c4cd4 100644 --- a/erpnext/stock/report/stock_and_account_value_comparison/stock_and_account_value_comparison.py +++ b/erpnext/stock/report/stock_and_account_value_comparison/stock_and_account_value_comparison.py @@ -41,7 +41,7 @@ def get_data(report_filters): key = (d.voucher_type, d.voucher_no) gl_data = voucher_wise_gl_data.get(key) or {} d.account_value = gl_data.get("account_value", 0) - d.difference_value = abs(d.stock_value - d.account_value) + d.difference_value = d.stock_value - d.account_value if abs(d.difference_value) > 0.1: data.append(d) From 120dca44adfbe8de67228385f832c589800e8e07 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 12 Jan 2023 20:31:24 +0530 Subject: [PATCH 023/355] chore: subcontracting validations (backport #33621) (#33626) * fix: `ZeroDivisionError: float division by zero` in SCR (cherry picked from commit 434aa594d57b986d078fb98025eda65f75b65e26) * chore: add row-index in error msgs (cherry picked from commit 6878f40d1df268fd179d7c5558e858387b27ae0a) * chore: update error msgs for Subcontracted PO (cherry picked from commit a0e2a93f3f502c29cb161736ef091a4e98c3dd53) * fix: validate accepted and rejected qty in SCR Item (cherry picked from commit f028bd6e69a571d0053f124334a0021904a7f365) * chore: linter (cherry picked from commit b26e96cdf40d4306faa158ad74644c5c2abce8c7) Co-authored-by: s-aga-r --- .../doctype/purchase_order/purchase_order.py | 12 ++++------- .../controllers/subcontracting_controller.py | 21 ++++++++++--------- .../subcontracting_receipt.py | 10 ++++++++- 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py index 5a4168a573ea..2415aec8cb93 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/purchase_order.py @@ -219,20 +219,16 @@ def validate_fg_item_for_subcontracting(self): else: if not frappe.get_value("Item", item.fg_item, "is_sub_contracted_item"): frappe.throw( - _( - "Row #{0}: Finished Good Item {1} must be a sub-contracted item for service item {2}" - ).format(item.idx, item.fg_item, item.item_code) + _("Row #{0}: Finished Good Item {1} must be a sub-contracted item").format( + item.idx, item.fg_item + ) ) elif not frappe.get_value("Item", item.fg_item, "default_bom"): frappe.throw( _("Row #{0}: Default BOM not found for FG Item {1}").format(item.idx, item.fg_item) ) if not item.fg_item_qty: - frappe.throw( - _("Row #{0}: Finished Good Item Qty is not specified for service item {0}").format( - item.idx, item.item_code - ) - ) + frappe.throw(_("Row #{0}: Finished Good Item Qty can not be zero").format(item.idx)) else: for item in self.items: item.set("fg_item", None) diff --git a/erpnext/controllers/subcontracting_controller.py b/erpnext/controllers/subcontracting_controller.py index 335d92f43f38..a9561fe2dac6 100644 --- a/erpnext/controllers/subcontracting_controller.py +++ b/erpnext/controllers/subcontracting_controller.py @@ -74,24 +74,25 @@ def validate_items(self): ) if not is_stock_item: - msg = f"Item {item.item_name} must be a stock item." - frappe.throw(_(msg)) + frappe.throw(_("Row {0}: Item {1} must be a stock item.").format(item.idx, item.item_name)) if not is_sub_contracted_item: - msg = f"Item {item.item_name} must be a subcontracted item." - frappe.throw(_(msg)) + frappe.throw( + _("Row {0}: Item {1} must be a subcontracted item.").format(item.idx, item.item_name) + ) if item.bom: bom = frappe.get_doc("BOM", item.bom) if not bom.is_active: - msg = f"Please select an active BOM for Item {item.item_name}." - frappe.throw(_(msg)) + frappe.throw( + _("Row {0}: Please select an active BOM for Item {1}.").format(item.idx, item.item_name) + ) if bom.item != item.item_code: - msg = f"Please select an valid BOM for Item {item.item_name}." - frappe.throw(_(msg)) + frappe.throw( + _("Row {0}: Please select an valid BOM for Item {1}.").format(item.idx, item.item_name) + ) else: - msg = f"Please select a BOM for Item {item.item_name}." - frappe.throw(_(msg)) + frappe.throw(_("Row {0}: Please select a BOM for Item {1}.").format(item.idx, item.item_name)) def __get_data_before_save(self): item_dict = {} diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py index bce53608beb9..7e1915bb71ad 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py @@ -57,6 +57,7 @@ def update_status_updater_args(self): def before_validate(self): super(SubcontractingReceipt, self).before_validate() + self.validate_items_qty() self.set_items_bom() self.set_items_cost_center() self.set_items_expense_account() @@ -157,7 +158,7 @@ def set_missing_values_in_items(self): total_qty = total_amount = 0 for item in self.items: - if item.name in rm_supp_cost: + if item.qty and item.name in rm_supp_cost: item.rm_supp_cost = rm_supp_cost[item.name] item.rm_cost_per_qty = item.rm_supp_cost / item.qty rm_supp_cost.pop(item.name) @@ -194,6 +195,13 @@ def validate_available_qty_for_consumption(self): ).format(item.idx) ) + def validate_items_qty(self): + for item in self.items: + if not (item.qty or item.rejected_qty): + frappe.throw( + _("Row {0}: Accepted Qty and Rejected Qty can't be zero at the same time.").format(item.idx) + ) + def set_items_bom(self): if self.is_return: for item in self.items: From 28f2d357abb6f59762ff2d721944dc897709e21f Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 12 Jan 2023 20:33:18 +0530 Subject: [PATCH 024/355] fix: only group similar items in print format if group_same_items is checked in pick list (backport #33627) (#33630) fix: only group similar items in print format if group_same_items is checked in pick list (#33627) * fix: only group similar items if group same items is checked in pick list * test: non grouping of locations if group_same_items is false Co-authored-by: Sagar Sharma (cherry picked from commit cfb0bb1eaa31c23ae8ce4c87c5a11c3e46d83789) Co-authored-by: Ritwik Puri Co-authored-by: Sagar Sharma --- erpnext/stock/doctype/pick_list/pick_list.py | 3 ++- erpnext/stock/doctype/pick_list/test_pick_list.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index 65a792fb46b7..9e6aead02db3 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -230,7 +230,8 @@ def validate_for_qty(self): frappe.throw(_("Qty of Finished Goods Item should be greater than 0.")) def before_print(self, settings=None): - self.group_similar_items() + if self.group_same_items: + self.group_similar_items() def group_similar_items(self): group_item_qty = defaultdict(float) diff --git a/erpnext/stock/doctype/pick_list/test_pick_list.py b/erpnext/stock/doctype/pick_list/test_pick_list.py index f552299806c3..71663e8ff477 100644 --- a/erpnext/stock/doctype/pick_list/test_pick_list.py +++ b/erpnext/stock/doctype/pick_list/test_pick_list.py @@ -445,6 +445,20 @@ def _compare_dicts(a, b): pl.before_print() self.assertEqual(len(pl.locations), 4) + # grouping should not happen if group_same_items is False + pl = frappe.get_doc( + doctype="Pick List", + group_same_items=False, + locations=[ + _dict(item_code="A", warehouse="X", qty=5, picked_qty=1), + _dict(item_code="B", warehouse="Y", qty=4, picked_qty=2), + _dict(item_code="A", warehouse="X", qty=3, picked_qty=2), + _dict(item_code="B", warehouse="Y", qty=2, picked_qty=2), + ], + ) + pl.before_print() + self.assertEqual(len(pl.locations), 4) + # grouping should halve the number of items pl = frappe.get_doc( doctype="Pick List", From 1f0a569c7fefab9b4d5966dcc84cfe9ee6ed110e Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 13 Jan 2023 01:34:31 +0530 Subject: [PATCH 025/355] chore: reuse doc object in test_pick_list_grouping_before_print (backport #33636) (#33637) chore: reuse doc object in test_pick_list_grouping_before_print (#33636) (cherry picked from commit e22d56484d7f4b8696bc48db2ac8dcc76e69e497) Co-authored-by: Ritwik Puri --- erpnext/stock/doctype/pick_list/test_pick_list.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/erpnext/stock/doctype/pick_list/test_pick_list.py b/erpnext/stock/doctype/pick_list/test_pick_list.py index 71663e8ff477..43acdf083601 100644 --- a/erpnext/stock/doctype/pick_list/test_pick_list.py +++ b/erpnext/stock/doctype/pick_list/test_pick_list.py @@ -460,16 +460,7 @@ def _compare_dicts(a, b): self.assertEqual(len(pl.locations), 4) # grouping should halve the number of items - pl = frappe.get_doc( - doctype="Pick List", - group_same_items=True, - locations=[ - _dict(item_code="A", warehouse="X", qty=5, picked_qty=1), - _dict(item_code="B", warehouse="Y", qty=4, picked_qty=2), - _dict(item_code="A", warehouse="X", qty=3, picked_qty=2), - _dict(item_code="B", warehouse="Y", qty=2, picked_qty=2), - ], - ) + pl.group_same_items = True pl.before_print() self.assertEqual(len(pl.locations), 2) From f915c181376f1c3e90ffd3ccde1ddf8a3c60ec66 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Thu, 12 Jan 2023 13:16:05 +0530 Subject: [PATCH 026/355] fix: Updating SO throws ordered_qty not allowed to change after submission (cherry picked from commit 391f42db0438fafb9f5b6200d11e012fdcd2555e) --- .../selling/doctype/sales_order_item/sales_order_item.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/selling/doctype/sales_order_item/sales_order_item.json b/erpnext/selling/doctype/sales_order_item/sales_order_item.json index b801de314cc8..cfbd94b401b3 100644 --- a/erpnext/selling/doctype/sales_order_item/sales_order_item.json +++ b/erpnext/selling/doctype/sales_order_item/sales_order_item.json @@ -639,6 +639,7 @@ "width": "70px" }, { + "allow_on_submit": 1, "fieldname": "ordered_qty", "fieldtype": "Float", "label": "Ordered Qty", @@ -865,7 +866,7 @@ "idx": 1, "istable": 1, "links": [], - "modified": "2022-11-18 11:39:01.741665", + "modified": "2023-01-12 13:13:28.691585", "modified_by": "Administrator", "module": "Selling", "name": "Sales Order Item", @@ -876,4 +877,4 @@ "sort_order": "DESC", "states": [], "track_changes": 1 -} \ No newline at end of file +} From 2dfbc6e4ebb39efe8c497205c3351cf0f602622d Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sat, 14 Jan 2023 21:08:52 +0530 Subject: [PATCH 027/355] fix: zero rm-cost in SCR (cherry picked from commit f70d757b82ecafc69552a92b1e884546c89b409f) --- .../doctype/subcontracting_receipt/subcontracting_receipt.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py index 7e1915bb71ad..e8faa4868f2f 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py @@ -63,6 +63,11 @@ def before_validate(self): self.set_items_expense_account() def validate(self): + if ( + frappe.db.get_single_value("Buying Settings", "backflush_raw_materials_of_subcontract_based_on") + == "BOM" + ): + self.supplied_items = [] super(SubcontractingReceipt, self).validate() self.set_missing_values() self.validate_posting_time() From 91b08f179a4e29f3b9400190faa50154cc587709 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 15 Jan 2023 17:30:32 +0530 Subject: [PATCH 028/355] feat: Date filters on bank reconciliation tool (#33271) * Update bank_reconciliation_tool.py Applying date filter on transactions and all the bank entries and also gives the filter the bank entries as per reference date. Sorted all transactions and entries as per date in ascending order. Also added posting date columns in all bank entries and default checkbox tick of journal entry, hide the sales invoice and purchase invoice checkbox. (cherry picked from commit e5a1189becad071f54c727bc6c0dba16bea2a12f) * Filters on Bank Reconciliation Applying date filter on transactions and all the bank entries and also gives the filter the bank entries as per reference date. Sorted all transactions and entries as per date in ascending order. Also added posting date columns in all bank entries and default checkbox tick of journal entry, hide the sales invoice and purchase invoice checkbox. (cherry picked from commit 447272aa4d1f49428717b1b0ae8e34a21fd0e752) * Update bank_reconciliation_tool.json Adding fields in bank reconciliation tool (cherry picked from commit 8e7c8a648221bdd35b9ecde52a9b56d78b412206) * Feat:Filter on Payment Entries and Journal Entries Applying filters on Payement entries and Journal Entries as per reference date and posting date (cherry picked from commit 408c89df030998fe36df135570c9edd90a522996) * feat:filters on bank reconciliation Added date filters on bank transactions, payment entries and journal entries and sorted list as per date in ascending order. (cherry picked from commit 05b6fce03d58d75df557f5dc5285da30b8baab38) * feat: added arguments of posting date and reference date (cherry picked from commit 645869e6ffec48b605cfdb68d763a7c9f21e3eec) * fix: linters (cherry picked from commit 6b5276398ef90a1a362ce709a92f47f4219f0134) * fix: json issue (cherry picked from commit 81e5f711725e42b25eb84f41790024798f6c535e) * fix: filtered as per reference date On bank reconciliation, transactions will be filtered as per date selected in 'from_date' and 'to_date' fields , In dialog, all the bank entries will be fetched as per the posting date selected and if filtered by reference date checkbox is tick then then there will be two fields 'from_reference_date' and 'to_reference_date' then all bank entries in dialog box came as per reference date, selected. And by default journal entry checkbox is tick. Also sorted the bank transactions and bank entries as per ascending order date wise. (cherry picked from commit 3aaa2f5326b13dbf390d86da9917fbb5def447ae) * fix: pre-commit (cherry picked from commit e2614b8a21117f47c0661f1e0080ed5f95d2e4f8) * fix: passing from_date and to_date filters in test cases passing from_date and to_date filters in test_linked_payments and test_debit_credit_output for unit testing (cherry picked from commit f1810803e1d874a22a49b5bd9b3351fbd2b5b843) * fix: pre-commit (cherry picked from commit 35c29e02267eafade500bdb91fb67a53ec554641) * fix: pre-commit (cherry picked from commit c764f14f53e4b6d87263681be9786166cd7998f9) * feat: consolidated auto bank reconciliation Added a button of Auto Reconcile, to reconcile the bank entries as per the matching reference number with the bank transaction and count of transactions reconciled message will be pop up on clicking the auto reconcile button. (cherry picked from commit d65243eb65fe53d5f5fad0bcb9ffeb1fce7e727a) * fix: data format (cherry picked from commit 12822f7c36fd8a3f5aeea146b0d5e7be46f14a47) * fix: remove comments (cherry picked from commit 917b2190aa25fff735ea3442cee797112147ccb1) * chore: fix fieldnames and order (cherry picked from commit 232726288acb230c49ddb023d453ad055a8b8215) Co-authored-by: sonali Co-authored-by: Deepesh Garg --- .../bank_reconciliation_tool.js | 32 ++- .../bank_reconciliation_tool.json | 35 ++- .../bank_reconciliation_tool.py | 263 +++++++++++++++--- .../bank_transaction/test_bank_transaction.py | 15 +- .../data_table_manager.js | 9 +- .../dialog_manager.js | 21 +- 6 files changed, 324 insertions(+), 51 deletions(-) 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 28e79b5d2c6a..c083189eb276 100644 --- a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js +++ b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js @@ -21,13 +21,22 @@ frappe.ui.form.on("Bank Reconciliation Tool", { frm.trigger('bank_account'); }, + filter_by_reference_date: function (frm) { + if (frm.doc.filter_by_reference_date) { + frm.set_value("bank_statement_from_date", ""); + frm.set_value("bank_statement_to_date", ""); + } else { + frm.set_value("from_reference_date", ""); + frm.set_value("to_reference_date", ""); + } + }, + refresh: function (frm) { frappe.require("bank-reconciliation-tool.bundle.js", () => frm.trigger("make_reconciliation_tool") ); - frm.upload_statement_button = frm.page.set_secondary_action( - __("Upload Bank Statement"), - () => + + frm.add_custom_button(__("Upload Bank Statement"), () => frappe.call({ method: "erpnext.accounts.doctype.bank_statement_import.bank_statement_import.upload_bank_statement", @@ -49,6 +58,20 @@ frappe.ui.form.on("Bank Reconciliation Tool", { }, }) ); + + frm.add_custom_button(__('Auto Reconcile'), function() { + frappe.call({ + method: "erpnext.accounts.doctype.bank_reconciliation_tool.bank_reconciliation_tool.auto_reconcile_vouchers", + args: { + bank_account: frm.doc.bank_account, + from_date: frm.doc.bank_statement_from_date, + to_date: frm.doc.bank_statement_to_date, + filter_by_reference_date: frm.doc.filter_by_reference_date, + from_reference_date: frm.doc.from_reference_date, + to_reference_date: frm.doc.to_reference_date, + }, + }) + }); }, after_save: function (frm) { @@ -160,6 +183,9 @@ frappe.ui.form.on("Bank Reconciliation Tool", { ).$wrapper, bank_statement_from_date: frm.doc.bank_statement_from_date, bank_statement_to_date: frm.doc.bank_statement_to_date, + filter_by_reference_date: frm.doc.filter_by_reference_date, + from_reference_date: frm.doc.from_reference_date, + to_reference_date: frm.doc.to_reference_date, bank_statement_closing_balance: frm.doc.bank_statement_closing_balance, cards_manager: frm.cards_manager, diff --git a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.json b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.json index f666101d3fd8..80993d6608de 100644 --- a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.json +++ b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.json @@ -10,6 +10,9 @@ "column_break_1", "bank_statement_from_date", "bank_statement_to_date", + "from_reference_date", + "to_reference_date", + "filter_by_reference_date", "column_break_2", "account_opening_balance", "bank_statement_closing_balance", @@ -36,13 +39,13 @@ "fieldtype": "Column Break" }, { - "depends_on": "eval: doc.bank_account", + "depends_on": "eval: doc.bank_account && !doc.filter_by_reference_date", "fieldname": "bank_statement_from_date", "fieldtype": "Date", "label": "From Date" }, { - "depends_on": "eval: doc.bank_statement_from_date", + "depends_on": "eval: doc.bank_account && !doc.filter_by_reference_date", "fieldname": "bank_statement_to_date", "fieldtype": "Date", "label": "To Date" @@ -81,14 +84,33 @@ }, { "fieldname": "no_bank_transactions", - "fieldtype": "HTML" + "fieldtype": "HTML", + "options": "
No Matching Bank Transactions Found
" + }, + { + "depends_on": "eval:doc.filter_by_reference_date", + "fieldname": "from_reference_date", + "fieldtype": "Date", + "label": "From Reference Date" + }, + { + "depends_on": "eval:doc.filter_by_reference_date", + "fieldname": "to_reference_date", + "fieldtype": "Date", + "label": "To Reference Date" + }, + { + "default": "0", + "fieldname": "filter_by_reference_date", + "fieldtype": "Check", + "label": "Filter by Reference Date" } ], "hide_toolbar": 1, "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2021-04-21 11:13:49.831769", + "modified": "2023-01-13 13:00:02.022919", "modified_by": "Administrator", "module": "Accounts", "name": "Bank Reconciliation Tool", @@ -107,5 +129,6 @@ ], "quick_entry": 1, "sort_field": "modified", - "sort_order": "DESC" -} + "sort_order": "DESC", + "states": [] +} \ No newline at end of file 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 8b496e5ea335..57bc351f4148 100644 --- a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py +++ b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py @@ -8,7 +8,7 @@ from frappe import _ from frappe.model.document import Document from frappe.query_builder.custom import ConstantColumn -from frappe.utils import flt +from frappe.utils import cint, flt from erpnext.accounts.doctype.bank_transaction.bank_transaction import get_paid_amount from erpnext.accounts.report.bank_reconciliation_statement.bank_reconciliation_statement import ( @@ -50,6 +50,7 @@ def get_bank_transactions(bank_account, from_date=None, to_date=None): "party", ], filters=filters, + order_by="date", ) return transactions @@ -261,6 +262,80 @@ def create_payment_entry_bts( return reconcile_vouchers(bank_transaction.name, vouchers) +@frappe.whitelist() +def auto_reconcile_vouchers( + bank_account, + from_date=None, + to_date=None, + filter_by_reference_date=None, + from_reference_date=None, + to_reference_date=None, +): + frappe.flags.auto_reconcile_vouchers = True + document_types = ["payment_entry", "journal_entry"] + bank_transactions = get_bank_transactions(bank_account) + matched_transaction = [] + for transaction in bank_transactions: + linked_payments = get_linked_payments( + transaction.name, + document_types, + from_date, + to_date, + filter_by_reference_date, + from_reference_date, + to_reference_date, + ) + vouchers = [] + for r in linked_payments: + vouchers.append( + { + "payment_doctype": r[1], + "payment_name": r[2], + "amount": r[4], + } + ) + transaction = frappe.get_doc("Bank Transaction", transaction.name) + account = frappe.db.get_value("Bank Account", transaction.bank_account, "account") + matched_trans = 0 + 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", "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_doctype"], + "payment_entry": voucher["payment_name"], + "allocated_amount": allocated_amount, + }, + ) + matched_transaction.append(str(transaction.name)) + transaction.save() + transaction.update_allocations() + matched_transaction_len = len(set(matched_transaction)) + if matched_transaction_len == 0: + frappe.msgprint(_("No matching references found for auto reconciliation")) + elif matched_transaction_len == 1: + frappe.msgprint(_("{0} transaction is reconcilied").format(matched_transaction_len)) + else: + frappe.msgprint(_("{0} transactions are reconcilied").format(matched_transaction_len)) + + frappe.flags.auto_reconcile_vouchers = False + + return frappe.get_doc("Bank Transaction", transaction.name) + + @frappe.whitelist() def reconcile_vouchers(bank_transaction_name, vouchers): # updated clear date of all the vouchers based on the bank transaction @@ -323,20 +398,58 @@ def reconcile_vouchers(bank_transaction_name, vouchers): @frappe.whitelist() -def get_linked_payments(bank_transaction_name, document_types=None): +def get_linked_payments( + bank_transaction_name, + document_types=None, + from_date=None, + to_date=None, + filter_by_reference_date=None, + from_reference_date=None, + to_reference_date=None, +): # get all matching payments for a bank transaction transaction = frappe.get_doc("Bank Transaction", bank_transaction_name) 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) - matching = check_matching(account, company, transaction, document_types) + matching = check_matching( + account, + company, + transaction, + document_types, + from_date, + to_date, + filter_by_reference_date, + from_reference_date, + to_reference_date, + ) return matching -def check_matching(bank_account, company, transaction, document_types): +def check_matching( + bank_account, + company, + transaction, + document_types, + from_date, + to_date, + filter_by_reference_date, + from_reference_date, + to_reference_date, +): # combine all types of vouchers - subquery = get_queries(bank_account, company, transaction, document_types) + subquery = get_queries( + bank_account, + company, + transaction, + document_types, + from_date, + to_date, + filter_by_reference_date, + from_reference_date, + to_reference_date, + ) filters = { "amount": transaction.unallocated_amount, "payment_type": "Receive" if transaction.deposit > 0 else "Pay", @@ -357,11 +470,20 @@ def check_matching(bank_account, company, transaction, document_types): filters, ) ) - return sorted(matching_vouchers, key=lambda x: x[0], reverse=True) if matching_vouchers else [] -def get_queries(bank_account, company, transaction, document_types): +def get_queries( + bank_account, + company, + transaction, + document_types, + from_date, + to_date, + filter_by_reference_date, + from_reference_date, + to_reference_date, +): # 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" @@ -377,6 +499,11 @@ def get_queries(bank_account, company, transaction, document_types): document_types, amount_condition, account_from_to, + from_date, + to_date, + filter_by_reference_date, + from_reference_date, + to_reference_date, ) or [] ) @@ -385,15 +512,42 @@ def get_queries(bank_account, company, transaction, document_types): def get_matching_queries( - bank_account, company, transaction, document_types, amount_condition, account_from_to + bank_account, + company, + transaction, + document_types, + amount_condition, + account_from_to, + from_date, + to_date, + filter_by_reference_date, + from_reference_date, + to_reference_date, ): queries = [] if "payment_entry" in document_types: - pe_amount_matching = get_pe_matching_query(amount_condition, account_from_to, transaction) + pe_amount_matching = get_pe_matching_query( + amount_condition, + account_from_to, + transaction, + from_date, + to_date, + filter_by_reference_date, + from_reference_date, + to_reference_date, + ) queries.extend([pe_amount_matching]) if "journal_entry" in document_types: - je_amount_matching = get_je_matching_query(amount_condition, transaction) + je_amount_matching = get_je_matching_query( + amount_condition, + transaction, + from_date, + to_date, + filter_by_reference_date, + from_reference_date, + to_reference_date, + ) queries.extend([je_amount_matching]) if transaction.deposit > 0 and "sales_invoice" in document_types: @@ -500,47 +654,81 @@ def get_lr_matching_query(bank_account, amount_condition, filters): return vouchers -def get_pe_matching_query(amount_condition, account_from_to, transaction): +def get_pe_matching_query( + amount_condition, + account_from_to, + transaction, + from_date, + to_date, + filter_by_reference_date, + from_reference_date, + to_reference_date, +): # get matching payment entries query if transaction.deposit > 0: currency_field = "paid_to_account_currency as currency" else: currency_field = "paid_from_account_currency as currency" + filter_by_date = f"AND posting_date between '{from_date}' and '{to_date}'" + order_by = " posting_date" + filter_by_reference_no = "" + if cint(filter_by_reference_date): + filter_by_date = f"AND reference_date between '{from_reference_date}' and '{to_reference_date}'" + order_by = " reference_date" + if frappe.flags.auto_reconcile_vouchers == True: + filter_by_reference_no = f"AND reference_no = '{transaction.reference_number}'" 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 - + 1 ) AS rank, - 'Payment Entry' as doctype, - name, - paid_amount, - reference_no, - reference_date, - party, - party_type, - posting_date, - {currency_field} - FROM - `tabPayment Entry` - WHERE - paid_amount {amount_condition} %(amount)s - AND docstatus = 1 - AND payment_type IN (%(payment_type)s, 'Internal Transfer') - AND ifnull(clearance_date, '') = "" - AND {account_from_to} = %(bank_account)s + 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 + + 1 ) AS rank, + 'Payment Entry' as doctype, + name, + paid_amount, + reference_no, + reference_date, + party, + party_type, + posting_date, + {currency_field} + FROM + `tabPayment Entry` + WHERE + paid_amount {amount_condition} %(amount)s + AND docstatus = 1 + AND payment_type IN (%(payment_type)s, 'Internal Transfer') + AND ifnull(clearance_date, '') = "" + AND {account_from_to} = %(bank_account)s + {filter_by_date} + {filter_by_reference_no} + order by{order_by} + """ -def get_je_matching_query(amount_condition, transaction): +def get_je_matching_query( + amount_condition, + transaction, + from_date, + to_date, + filter_by_reference_date, + from_reference_date, + to_reference_date, +): # get matching journal entry query - # 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" - + filter_by_date = f"AND je.posting_date between '{from_date}' and '{to_date}'" + order_by = " je.posting_date" + filter_by_reference_no = "" + if cint(filter_by_reference_date): + filter_by_date = f"AND je.cheque_date between '{from_reference_date}' and '{to_reference_date}'" + order_by = " je.cheque_date" + if frappe.flags.auto_reconcile_vouchers == True: + filter_by_reference_no = f"AND je.cheque_no = '{transaction.reference_number}'" return f""" - SELECT (CASE WHEN je.cheque_no=%(reference_no)s THEN 1 ELSE 0 END + 1) AS rank , @@ -564,6 +752,9 @@ def get_je_matching_query(amount_condition, transaction): AND jea.account = %(bank_account)s AND jea.{cr_or_dr}_in_account_currency {amount_condition} %(amount)s AND je.docstatus = 1 + {filter_by_date} + {filter_by_reference_no} + order by {order_by} """ diff --git a/erpnext/accounts/doctype/bank_transaction/test_bank_transaction.py b/erpnext/accounts/doctype/bank_transaction/test_bank_transaction.py index a5d04137995d..f900e0775ce9 100644 --- a/erpnext/accounts/doctype/bank_transaction/test_bank_transaction.py +++ b/erpnext/accounts/doctype/bank_transaction/test_bank_transaction.py @@ -5,6 +5,7 @@ import unittest import frappe +from frappe import utils from frappe.tests.utils import FrappeTestCase from erpnext.accounts.doctype.bank_reconciliation_tool.bank_reconciliation_tool import ( @@ -40,7 +41,12 @@ def test_linked_payments(self): "Bank Transaction", dict(description="Re 95282925234 FE/000002917 AT171513000281183046 Conrad Electronic"), ) - linked_payments = get_linked_payments(bank_transaction.name, ["payment_entry", "exact_match"]) + linked_payments = get_linked_payments( + bank_transaction.name, + ["payment_entry", "exact_match"], + from_date=bank_transaction.date, + to_date=utils.today(), + ) self.assertTrue(linked_payments[0][6] == "Conrad Electronic") # This test validates a simple reconciliation leading to the clearance of the bank transaction and the payment @@ -81,7 +87,12 @@ def test_debit_credit_output(self): "Bank Transaction", dict(description="Auszahlung Karte MC/000002916 AUTOMAT 698769 K002 27.10. 14:07"), ) - linked_payments = get_linked_payments(bank_transaction.name, ["payment_entry", "exact_match"]) + linked_payments = get_linked_payments( + bank_transaction.name, + ["payment_entry", "exact_match"], + from_date=bank_transaction.date, + to_date=utils.today(), + ) self.assertTrue(linked_payments[0][3]) # Check error if already reconciled 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 9ef8ce6b63e0..f7c19a1b7ff3 100644 --- a/erpnext/public/js/bank_reconciliation_tool/data_table_manager.js +++ b/erpnext/public/js/bank_reconciliation_tool/data_table_manager.js @@ -5,7 +5,12 @@ erpnext.accounts.bank_reconciliation.DataTableManager = class DataTableManager { Object.assign(this, opts); this.dialog_manager = new erpnext.accounts.bank_reconciliation.DialogManager( this.company, - this.bank_account + this.bank_account, + this.bank_statement_from_date, + this.bank_statement_to_date, + this.filter_by_reference_date, + this.from_reference_date, + this.to_reference_date ); this.make_dt(); } @@ -17,6 +22,8 @@ erpnext.accounts.bank_reconciliation.DataTableManager = class DataTableManager { "erpnext.accounts.doctype.bank_reconciliation_tool.bank_reconciliation_tool.get_bank_transactions", args: { bank_account: this.bank_account, + from_date: this.bank_statement_from_date, + to_date: this.bank_statement_to_date }, callback: function (response) { me.format_data(response.message); diff --git a/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js b/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js index b5e6ab871d12..51664f8885ee 100644 --- a/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js +++ b/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js @@ -5,8 +5,12 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { this.bank_account = bank_account; this.company = company; this.make_dialog(); + this.bank_statement_from_date = bank_statement_from_date; + this.bank_statement_to_date = bank_statement_to_date; + this.filter_by_reference_date = filter_by_reference_date; + this.from_reference_date = from_reference_date; + this.to_reference_date = to_reference_date; } - show_dialog(bank_transaction_name, update_dt_cards) { this.bank_transaction_name = bank_transaction_name; this.update_dt_cards = update_dt_cards; @@ -35,13 +39,13 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { if (r.message) { this.bank_transaction = r.message; r.message.payment_entry = 1; + r.message.journal_entry = 1; this.dialog.set_values(r.message); this.dialog.show(); } }, }); } - get_linked_vouchers(document_types) { frappe.call({ method: @@ -49,6 +53,11 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { args: { bank_transaction_name: this.bank_transaction_name, document_types: document_types, + from_date: this.bank_statement_from_date, + to_date: this.bank_statement_to_date, + filter_by_reference_date: this.filter_by_reference_date, + from_reference_date:this.from_reference_date, + to_reference_date:this.to_reference_date }, callback: (result) => { @@ -66,6 +75,7 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { row[1], row[2], reference_date, + row[8], format_currency(row[3], row[9]), row[6], row[4], @@ -101,6 +111,11 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { editable: false, width: 120, }, + { + name: "Posting Date", + editable: false, + width: 120, + }, { name: __("Amount"), editable: false, @@ -578,4 +593,4 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { } } -}; +}; \ No newline at end of file From 4d2497faf1d3987d0b87c6b48bafbd4c3e2df852 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 15 Jan 2023 17:33:39 +0530 Subject: [PATCH 029/355] fix: asset value in fixed asset register (#33608) fix: asset value in fixed asset register (cherry picked from commit aa1f2a7297b09a600f84d2b552316aa899d288f1) Co-authored-by: anandbaburajan --- .../fixed_asset_register.py | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) 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 6b14dce084e6..dd5dfca8a224 100644 --- a/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py +++ b/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py @@ -86,6 +86,7 @@ def get_data(filters): "status", "department", "cost_center", + "calculate_depreciation", "purchase_receipt", "asset_category", "purchase_date", @@ -98,11 +99,7 @@ def get_data(filters): assets_record = frappe.db.get_all("Asset", filters=conditions, fields=fields) for asset in assets_record: - asset_value = ( - asset.gross_purchase_amount - - flt(asset.opening_accumulated_depreciation) - - flt(depreciation_amount_map.get(asset.name)) - ) + asset_value = get_asset_value(asset, filters.finance_book) row = { "asset_id": asset.asset_id, "asset_name": asset.asset_name, @@ -125,6 +122,21 @@ def get_data(filters): return data +def get_asset_value(asset, finance_book=None): + if not asset.calculate_depreciation: + return flt(asset.gross_purchase_amount) - flt(asset.opening_accumulated_depreciation) + + finance_book_filter = ["finance_book", "is", "not set"] + if finance_book: + finance_book_filter = ["finance_book", "=", finance_book] + + return frappe.db.get_value( + doctype="Asset Finance Book", + filters=[["parent", "=", asset.asset_id], finance_book_filter], + fieldname="value_after_depreciation", + ) + + def prepare_chart_data(data, filters): labels_values_map = {} date_field = frappe.scrub(filters.date_based_on) From df41b006fc85f76dc064366fca07cac9da0f86d3 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sun, 15 Jan 2023 21:09:16 +0530 Subject: [PATCH 030/355] chore: `Sales Order` link in `Pick List` (cherry picked from commit b3759890d703764d8b4a40125fb6df466a2e4b82) --- erpnext/stock/doctype/pick_list/pick_list_dashboard.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/pick_list/pick_list_dashboard.py b/erpnext/stock/doctype/pick_list/pick_list_dashboard.py index 92e57bed2205..7fbcbafbac1f 100644 --- a/erpnext/stock/doctype/pick_list/pick_list_dashboard.py +++ b/erpnext/stock/doctype/pick_list/pick_list_dashboard.py @@ -1,7 +1,10 @@ def get_data(): return { "fieldname": "pick_list", + "internal_links": { + "Sales Order": ["locations", "sales_order"], + }, "transactions": [ - {"items": ["Stock Entry", "Delivery Note"]}, + {"items": ["Stock Entry", "Sales Order", "Delivery Note"]}, ], } From 623c35dfe171248071eaf4f05bda80b4b26ec136 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 16 Jan 2023 08:45:31 +0530 Subject: [PATCH 031/355] refactor: use DocStatus (#33594) refactor: use DocStatus (#33594) (cherry picked from commit 67cf7e1728627069e94727faffe8e388955a4a6c) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- .../doctype/repost_payment_ledger/repost_payment_ledger.py | 2 +- erpnext/controllers/sales_and_purchase_return.py | 2 +- erpnext/controllers/taxes_and_totals.py | 7 ++++--- erpnext/selling/doctype/sales_order/sales_order.py | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py b/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py index 25c89a17a06c..400e07da6ab5 100644 --- a/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py +++ b/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py @@ -26,7 +26,7 @@ def start_payment_ledger_repost(docname=None): """ if docname: repost_doc = frappe.get_doc("Repost Payment Ledger", docname) - if repost_doc.docstatus == 1 and repost_doc.repost_status in ["Queued", "Failed"]: + if repost_doc.docstatus.is_submitted() and repost_doc.repost_status in ["Queued", "Failed"]: try: for entry in repost_doc.repost_vouchers: doc = frappe.get_doc(entry.voucher_type, entry.voucher_no) diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py index 15c82af856b8..8bd09982bf42 100644 --- a/erpnext/controllers/sales_and_purchase_return.py +++ b/erpnext/controllers/sales_and_purchase_return.py @@ -37,7 +37,7 @@ def validate_return_against(doc): if ( ref_doc.company == doc.company and ref_doc.get(party_type) == doc.get(party_type) - and ref_doc.docstatus == 1 + and ref_doc.docstatus.is_submitted() ): # validate posting date time return_posting_datetime = "%s %s" % (doc.posting_date, doc.get("posting_time") or "00:00:00") diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py index c6a634ba806f..8c403aa9bfe2 100644 --- a/erpnext/controllers/taxes_and_totals.py +++ b/erpnext/controllers/taxes_and_totals.py @@ -6,6 +6,7 @@ import frappe from frappe import _, scrub +from frappe.model.document import Document from frappe.utils import cint, flt, round_based_on_smallest_currency_fraction import erpnext @@ -20,7 +21,7 @@ class calculate_taxes_and_totals(object): - def __init__(self, doc): + def __init__(self, doc: Document): self.doc = doc frappe.flags.round_off_applicable_accounts = [] get_round_off_applicable_accounts(self.doc.company, frappe.flags.round_off_applicable_accounts) @@ -677,7 +678,7 @@ def get_total_for_discount_amount(self): ) def calculate_total_advance(self): - if self.doc.docstatus < 2: + if not self.doc.docstatus.is_cancelled(): total_allocated_amount = sum( flt(adv.allocated_amount, adv.precision("allocated_amount")) for adv in self.doc.get("advances") @@ -708,7 +709,7 @@ def calculate_total_advance(self): ) ) - if self.doc.docstatus == 0: + if self.doc.docstatus.is_draft(): if self.doc.get("write_off_outstanding_amount_automatically"): self.doc.write_off_amount = 0 diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 7c0601e3dd54..accf5f22a6fc 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -208,7 +208,7 @@ def update_prevdoc_status(self, flag=None): for quotation in set(d.prevdoc_docname for d in self.get("items")): if quotation: doc = frappe.get_doc("Quotation", quotation) - if doc.docstatus == 2: + if doc.docstatus.is_cancelled(): frappe.throw(_("Quotation {0} is cancelled").format(quotation)) doc.set_status(update=True) From 23b9f661b641f9727cfdbad24f58110d839da5a9 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Mon, 16 Jan 2023 08:50:39 +0530 Subject: [PATCH 032/355] revert: Reverting changes done on 33495 (#33662) 'ordered_qty' will not be fetched from `tabBin` (cherry picked from commit be382054e5c14aab2b021feba780ef9f78225f81) --- erpnext/stock/doctype/item/test_item.py | 1 - erpnext/stock/get_item_details.py | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py index 7e426ae4af8e..53f6b7f8f17e 100644 --- a/erpnext/stock/doctype/item/test_item.py +++ b/erpnext/stock/doctype/item/test_item.py @@ -106,7 +106,6 @@ def test_get_item_details(self): "conversion_factor": 1.0, "reserved_qty": 1, "actual_qty": 5, - "ordered_qty": 10, "projected_qty": 14, } diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index f7fcb30acd25..363dc0a63f3f 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -1181,7 +1181,7 @@ def get_projected_qty(item_code, warehouse): @frappe.whitelist() def get_bin_details(item_code, warehouse, company=None, include_child_warehouses=False): - bin_details = {"projected_qty": 0, "actual_qty": 0, "reserved_qty": 0, "ordered_qty": 0} + bin_details = {"projected_qty": 0, "actual_qty": 0, "reserved_qty": 0} if warehouse: from frappe.query_builder.functions import Coalesce, Sum @@ -1197,7 +1197,6 @@ def get_bin_details(item_code, warehouse, company=None, include_child_warehouses Coalesce(Sum(bin.projected_qty), 0).as_("projected_qty"), Coalesce(Sum(bin.actual_qty), 0).as_("actual_qty"), Coalesce(Sum(bin.reserved_qty), 0).as_("reserved_qty"), - Coalesce(Sum(bin.ordered_qty), 0).as_("ordered_qty"), ) .where((bin.item_code == item_code) & (bin.warehouse.isin(warehouses))) ).run(as_dict=True)[0] From faea73a4eed9849b5942861f9755c197f433c6a6 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Mon, 16 Jan 2023 08:49:35 +0530 Subject: [PATCH 033/355] Revert "fix: Updating SO throws ordered_qty not allowed to change after submission" (#33646) (cherry picked from commit 333907b7a52890856a2bcfa794e886ae11d2c340) --- erpnext/selling/doctype/sales_order_item/sales_order_item.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/erpnext/selling/doctype/sales_order_item/sales_order_item.json b/erpnext/selling/doctype/sales_order_item/sales_order_item.json index cfbd94b401b3..50ae3a3f1a92 100644 --- a/erpnext/selling/doctype/sales_order_item/sales_order_item.json +++ b/erpnext/selling/doctype/sales_order_item/sales_order_item.json @@ -639,7 +639,6 @@ "width": "70px" }, { - "allow_on_submit": 1, "fieldname": "ordered_qty", "fieldtype": "Float", "label": "Ordered Qty", @@ -866,7 +865,7 @@ "idx": 1, "istable": 1, "links": [], - "modified": "2023-01-12 13:13:28.691585", + "modified": "2022-12-25 02:51:10.247569", "modified_by": "Administrator", "module": "Selling", "name": "Sales Order Item", From 8a498ed029b9ffc2adc8eadade070f154ff5d768 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Sat, 14 Jan 2023 12:22:22 +0530 Subject: [PATCH 034/355] perf: improve reconciliation speed on JE's with 1000's of rows 1. No need to keep old PLE's on reconciliation. 2. Added Validation to catch debit-credit mismatch on JE's 3. Only update outstanding amount for newly reconciled invoices (cherry picked from commit 11cf694d9a1833758788d87baf70db35a87c2f08) --- erpnext/accounts/utils.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index 7ba433ea8c85..31885ac07b3e 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -439,8 +439,7 @@ def reconcile_against_document(args): # nosemgrep # cancel advance entry doc = frappe.get_doc(voucher_type, voucher_no) frappe.flags.ignore_party_validation = True - gl_map = doc.build_gl_map() - create_payment_ledger_entry(gl_map, cancel=1, adv_adj=1) + _delete_pl_entries(voucher_type, voucher_no) for entry in entries: check_if_advance_entry_modified(entry) @@ -452,11 +451,23 @@ def reconcile_against_document(args): # nosemgrep else: update_reference_in_payment_entry(entry, doc, do_not_save=True) + if doc.doctype == "Journal Entry": + try: + doc.validate_total_debit_and_credit() + except Exception as validation_exception: + raise frappe.ValidationError(_(f"Validation Error for {doc.name}")) from validation_exception + doc.save(ignore_permissions=True) # re-submit advance entry doc = frappe.get_doc(entry.voucher_type, entry.voucher_no) gl_map = doc.build_gl_map() - create_payment_ledger_entry(gl_map, cancel=0, adv_adj=1) + create_payment_ledger_entry(gl_map, update_outstanding="No", cancel=0, adv_adj=1) + + # Only update outstanding for newly linked vouchers + for entry in entries: + update_voucher_outstanding( + entry.against_voucher_type, entry.against_voucher, entry.account, entry.party_type, entry.party + ) frappe.flags.ignore_party_validation = False From bddf3307542cdf98d16016c94d11a775ace019db Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Sun, 15 Jan 2023 18:09:51 +0530 Subject: [PATCH 035/355] fix: minor filter issue while reconciliation tool from bench console (cherry picked from commit 828eaf09301d84ebf78afb69e620c8d38a51e036) --- .../doctype/payment_reconciliation/payment_reconciliation.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py index ac033f7db603..13712cee01d8 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py @@ -471,6 +471,7 @@ def validate_allocation(self): def build_qb_filter_conditions(self, get_invoices=False, get_return_invoices=False): self.common_filter_conditions.clear() + self.accounting_dimension_filter_conditions.clear() self.ple_posting_date_filter.clear() ple = qb.DocType("Payment Ledger Entry") From fe513433b282ccce57745686254a26eeb66eaf3f Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 16 Jan 2023 10:01:43 +0530 Subject: [PATCH 036/355] fix: allow to create sales order from expired quotation (#33582) fix: allow to create sales order from expired quotation (#33582) (cherry picked from commit dceef0397a55bdca84d0eda88ad688aed314f349) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- erpnext/selling/doctype/quotation/quotation.py | 9 +-------- erpnext/selling/doctype/quotation/test_quotation.py | 11 +++++++---- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py index 484b8c9f08d4..6836d56647f6 100644 --- a/erpnext/selling/doctype/quotation/quotation.py +++ b/erpnext/selling/doctype/quotation/quotation.py @@ -194,14 +194,7 @@ def get_list_context(context=None): @frappe.whitelist() -def make_sales_order(source_name, target_doc=None): - 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.")) +def make_sales_order(source_name: str, target_doc=None): 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 b151dd5e79c4..5aaba4fa4356 100644 --- a/erpnext/selling/doctype/quotation/test_quotation.py +++ b/erpnext/selling/doctype/quotation/test_quotation.py @@ -136,17 +136,20 @@ def test_make_sales_order_with_terms(self): sales_order.payment_schedule[1].due_date, getdate(add_days(quotation.transaction_date, 30)) ) - def test_valid_till(self): - from erpnext.selling.doctype.quotation.quotation import make_sales_order - + def test_valid_till_before_transaction_date(self): quotation = frappe.copy_doc(test_records[0]) quotation.valid_till = add_days(quotation.transaction_date, -1) self.assertRaises(frappe.ValidationError, quotation.validate) + def test_so_from_expired_quotation(self): + from erpnext.selling.doctype.quotation.quotation import make_sales_order + + 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) + + make_sales_order(quotation.name) def test_shopping_cart_without_website_item(self): if frappe.db.exists("Website Item", {"item_code": "_Test Item Home Desktop 100"}): From 35fbd67a938b7ffb5bbb7a5a39b4c9a9558acd33 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 16 Jan 2023 10:03:12 +0530 Subject: [PATCH 037/355] fix: Return against internal purchase invoice (backport #33635) (#33658) fix: Return against internal purchase invoice (#33635) (cherry picked from commit 906ad10d16d2d154cb230b0b0f3fab3d12a35701) Co-authored-by: Deepesh Garg --- erpnext/controllers/accounts_controller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index 788dc4982e57..6fa44c93c22e 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -394,7 +394,7 @@ def validate_inter_company_reference(self): self.get("inter_company_reference") or self.get("inter_company_invoice_reference") or self.get("inter_company_order_reference") - ): + ) and not self.get("is_return"): msg = _("Internal Sale or Delivery Reference missing.") msg += _("Please create purchase from internal sale or delivery document itself") frappe.throw(msg, title=_("Internal Sales Reference Missing")) From 0431a57ff067e492fdedd3bd767c7acb1402e00d Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Sun, 15 Jan 2023 20:51:54 +0530 Subject: [PATCH 038/355] fix: attribute error while submitting Repost PLE (cherry picked from commit 2c50f43cdd6c185e0a5474e9a73ab6d3e404d765) --- .../repost_payment_ledger/repost_payment_ledger.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py b/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py index 400e07da6ab5..209cad4f9059 100644 --- a/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py +++ b/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py @@ -101,10 +101,9 @@ def execute_repost_payment_ledger(docname): job_name = "payment_ledger_repost_" + docname - if not frappe.utils.background_jobs.is_job_queued(job_name): - frappe.enqueue( - method="erpnext.accounts.doctype.repost_payment_ledger.repost_payment_ledger.start_payment_ledger_repost", - docname=docname, - is_async=True, - job_name=job_name, - ) + frappe.enqueue( + method="erpnext.accounts.doctype.repost_payment_ledger.repost_payment_ledger.start_payment_ledger_repost", + docname=docname, + is_async=True, + job_name=job_name, + ) From 6b3dc90560c52089b12d8cf886bc67d9a3c54a88 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 16 Jan 2023 18:58:17 +0530 Subject: [PATCH 039/355] refactor: picked qty in sales order item (cherry picked from commit 1bcff80074e4a79d5d37ecff8003c4a5379380ef) --- erpnext/stock/doctype/pick_list/pick_list.py | 158 +++++++++++++------ 1 file changed, 110 insertions(+), 48 deletions(-) diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index 9e6aead02db3..9c6f4f4a3529 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -4,7 +4,7 @@ import json from collections import OrderedDict, defaultdict from itertools import groupby -from typing import Dict, List, Set +from typing import Dict, List import frappe from frappe import _ @@ -41,7 +41,9 @@ def before_save(self): ) def before_submit(self): - update_sales_orders = set() + self.validate_picked_items() + + def validate_picked_items(self): for item in self.locations: if self.scan_mode and item.picked_qty < item.stock_qty: frappe.throw( @@ -50,17 +52,14 @@ def before_submit(self): ).format(item.idx, item.stock_qty - item.picked_qty, item.stock_uom), title=_("Pick List Incomplete"), ) - elif not self.scan_mode and item.picked_qty == 0: + + if not self.scan_mode and item.picked_qty == 0: # if the user has not entered any picked qty, set it to stock_qty, before submit item.picked_qty = item.stock_qty - if item.sales_order_item: - # update the picked_qty in SO Item - self.update_sales_order_item(item, item.picked_qty, item.item_code) - update_sales_orders.add(item.sales_order) - if not frappe.get_cached_value("Item", item.item_code, "has_serial_no"): continue + if not item.serial_no: frappe.throw( _("Row #{0}: {1} does not have any available serial numbers in {2}").format( @@ -68,59 +67,97 @@ def before_submit(self): ), title=_("Serial Nos Required"), ) - if len(item.serial_no.split("\n")) == item.picked_qty: - continue - frappe.throw( - _( - "For item {0} at row {1}, count of serial numbers does not match with the picked quantity" - ).format(frappe.bold(item.item_code), frappe.bold(item.idx)), - title=_("Quantity Mismatch"), - ) + if len(item.serial_no.split("\n")) != item.picked_qty: + frappe.throw( + _( + "For item {0} at row {1}, count of serial numbers does not match with the picked quantity" + ).format(frappe.bold(item.item_code), frappe.bold(item.idx)), + title=_("Quantity Mismatch"), + ) + + def on_submit(self): self.update_bundle_picked_qty() - self.update_sales_order_picking_status(update_sales_orders) + self.update_reference_qty() + self.update_sales_order_picking_status() - def before_cancel(self): - """Deduct picked qty on cancelling pick list""" - updated_sales_orders = set() + def on_cancel(self): + self.update_bundle_picked_qty() + self.update_reference_qty() + self.update_sales_order_picking_status() - for item in self.get("locations"): - if item.sales_order_item: - self.update_sales_order_item(item, -1 * item.picked_qty, item.item_code) - updated_sales_orders.add(item.sales_order) + def update_reference_qty(self): + packed_items = [] + so_items = [] - self.update_bundle_picked_qty() - self.update_sales_order_picking_status(updated_sales_orders) + for item in self.locations: + if item.product_bundle_item: + packed_items.append(item.sales_order_item) + elif item.sales_order_item: + so_items.append(item.sales_order_item) + + if packed_items: + self.update_packed_items_qty(packed_items) + + if so_items: + self.update_sales_order_item_qty(so_items) + + def update_packed_items_qty(self, packed_items): + picked_items = get_picked_items_qty(packed_items) + self.validate_picked_qty(picked_items) + + picked_qty = frappe._dict() + for d in picked_items: + picked_qty[d.sales_order_item] = d.picked_qty + + for packed_item in packed_items: + frappe.db.set_value( + "Packed Item", + packed_item, + "picked_qty", + flt(picked_qty.get(packed_item)), + update_modified=False, + ) - def update_sales_order_item(self, item, picked_qty, item_code): - item_table = "Sales Order Item" if not item.product_bundle_item else "Packed Item" - stock_qty_field = "stock_qty" if not item.product_bundle_item else "qty" + def update_sales_order_item_qty(self, so_items): + picked_items = get_picked_items_qty(so_items) + self.validate_picked_qty(picked_items) - already_picked, actual_qty = frappe.db.get_value( - item_table, - item.sales_order_item, - ["picked_qty", stock_qty_field], - for_update=True, + picked_qty = frappe._dict() + for d in picked_items: + picked_qty[d.sales_order_item] = d.picked_qty + + for so_item in so_items: + frappe.db.set_value( + "Sales Order Item", + so_item, + "picked_qty", + flt(picked_qty.get(so_item)), + update_modified=False, + ) + + def update_sales_order_picking_status(self) -> None: + sales_orders = [] + for row in self.locations: + if row.sales_order and row.sales_order not in sales_orders: + sales_orders.append(row.sales_order) + + for sales_order in sales_orders: + frappe.get_doc("Sales Order", sales_order, for_update=True).update_picking_status() + + def validate_picked_qty(self, data): + over_delivery_receipt_allowance = 100 + flt( + frappe.db.get_single_value("Stock Settings", "over_delivery_receipt_allowance") ) - if self.docstatus == 1: - if (((already_picked + picked_qty) / actual_qty) * 100) > ( - 100 + flt(frappe.db.get_single_value("Stock Settings", "over_delivery_receipt_allowance")) - ): + for row in data: + if (row.picked_qty / row.stock_qty) * 100 > over_delivery_receipt_allowance: frappe.throw( _( - "You are picking more than required quantity for {}. Check if there is any other pick list created for {}" - ).format(item_code, item.sales_order) + f"You are picking more than required quantity for the item {row.item_code}. Check if there is any other pick list created for the sales order {row.sales_order}." + ) ) - frappe.db.set_value(item_table, item.sales_order_item, "picked_qty", already_picked + picked_qty) - - @staticmethod - def update_sales_order_picking_status(sales_orders: Set[str]) -> None: - for sales_order in sales_orders: - if sales_order: - frappe.get_doc("Sales Order", sales_order, for_update=True).update_picking_status() - @frappe.whitelist() def set_item_locations(self, save=False): self.validate_for_qty() @@ -309,6 +346,31 @@ def _compute_picked_qty_for_bundle(self, bundle_row, bundle_items) -> int: return int(flt(min(possible_bundles), precision or 6)) +def get_picked_items_qty(items) -> List[Dict]: + return frappe.db.sql( + f""" + SELECT + sales_order_item, + item_code, + sales_order, + SUM(stock_qty) AS stock_qty, + SUM(picked_qty) AS picked_qty + FROM + `tabPick List Item` + WHERE + sales_order_item IN ( + {", ".join(frappe.db.escape(d) for d in items)} + ) + AND docstatus = 1 + GROUP BY + sales_order_item, + sales_order + FOR UPDATE + """, + as_dict=1, + ) + + def validate_item_locations(pick_list): if not pick_list.locations: frappe.throw(_("Add items in the Item Locations table")) From bc55f44de6719483b158dec193293d61eed04905 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Mon, 16 Jan 2023 23:36:46 +0530 Subject: [PATCH 040/355] fix: asset repair link --- erpnext/assets/doctype/asset/asset.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.json b/erpnext/assets/doctype/asset/asset.json index 8b6af47b0492..5e6fe14ac04d 100644 --- a/erpnext/assets/doctype/asset/asset.json +++ b/erpnext/assets/doctype/asset/asset.json @@ -513,7 +513,7 @@ { "group": "Repair", "link_doctype": "Asset Repair", - "link_fieldname": "asset_name" + "link_fieldname": "asset" }, { "group": "Value", @@ -521,7 +521,7 @@ "link_fieldname": "asset" } ], - "modified": "2022-12-05 16:21:30.024060", + "modified": "2023-01-16 23:35:37.423100", "modified_by": "Administrator", "module": "Assets", "name": "Asset", From 4d65d6f9bd73008db5682027e1ceb44e44d64e82 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 16 Jan 2023 23:29:13 +0530 Subject: [PATCH 041/355] feat: provision to select date type based on filter (cherry picked from commit 20c88732086771ca9f54f237fbe19c004d8cf584) --- .../work_order_summary/work_order_summary.js | 28 +++++-------------- .../work_order_summary/work_order_summary.py | 19 +++++++++++-- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/erpnext/manufacturing/report/work_order_summary/work_order_summary.js b/erpnext/manufacturing/report/work_order_summary/work_order_summary.js index 832be2301c19..67bd24dd805e 100644 --- a/erpnext/manufacturing/report/work_order_summary/work_order_summary.js +++ b/erpnext/manufacturing/report/work_order_summary/work_order_summary.js @@ -13,38 +13,24 @@ frappe.query_reports["Work Order Summary"] = { reqd: 1 }, { - fieldname: "fiscal_year", - label: __("Fiscal Year"), - fieldtype: "Link", - options: "Fiscal Year", - default: frappe.defaults.get_user_default("fiscal_year"), - reqd: 1, - on_change: function(query_report) { - var fiscal_year = query_report.get_values().fiscal_year; - if (!fiscal_year) { - return; - } - frappe.model.with_doc("Fiscal Year", fiscal_year, function(r) { - var fy = frappe.model.get_doc("Fiscal Year", fiscal_year); - frappe.query_report.set_filter_value({ - from_date: fy.year_start_date, - to_date: fy.year_end_date - }); - }); - } + label: __("Based On"), + fieldname:"based_on", + fieldtype: "Select", + options: "Creation Date\nPlanned Date\nActual Date", + default: "Creation Date" }, { label: __("From Posting Date"), fieldname:"from_date", fieldtype: "Date", - default: frappe.defaults.get_user_default("year_start_date"), + default: frappe.datetime.add_months(frappe.datetime.get_today(), -3), reqd: 1 }, { label: __("To Posting Date"), fieldname:"to_date", fieldtype: "Date", - default: frappe.defaults.get_user_default("year_end_date"), + default: frappe.datetime.get_today(), reqd: 1, }, { diff --git a/erpnext/manufacturing/report/work_order_summary/work_order_summary.py b/erpnext/manufacturing/report/work_order_summary/work_order_summary.py index b69ad070e166..97f30ef62e9d 100644 --- a/erpnext/manufacturing/report/work_order_summary/work_order_summary.py +++ b/erpnext/manufacturing/report/work_order_summary/work_order_summary.py @@ -31,6 +31,7 @@ def get_data(filters): "sales_order", "production_item", "qty", + "creation", "produced_qty", "planned_start_date", "planned_end_date", @@ -47,11 +48,17 @@ def get_data(filters): if filters.get(field): query_filters[field] = filters.get(field) - query_filters["planned_start_date"] = (">=", filters.get("from_date")) - query_filters["planned_end_date"] = ("<=", filters.get("to_date")) + if filters.get("based_on") == "Planned Date": + query_filters["planned_start_date"] = (">=", filters.get("from_date")) + query_filters["planned_end_date"] = ("<=", filters.get("to_date")) + elif filters.get("based_on") == "Actual Date": + query_filters["actual_start_date"] = (">=", filters.get("from_date")) + query_filters["actual_end_date"] = ("<=", filters.get("to_date")) + else: + query_filters["creation"] = ("between", [filters.get("from_date"), filters.get("to_date")]) data = frappe.get_all( - "Work Order", fields=fields, filters=query_filters, order_by="planned_start_date asc" + "Work Order", fields=fields, filters=query_filters, order_by="planned_start_date asc", debug=1 ) res = [] @@ -213,6 +220,12 @@ def get_columns(filters): "options": "Sales Order", "width": 90, }, + { + "label": _("Created On"), + "fieldname": "creation", + "fieldtype": "Date", + "width": 150, + }, { "label": _("Planned Start Date"), "fieldname": "planned_start_date", From a1bfa569e6076df5ceed4bc51dd645d282547b77 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 17 Jan 2023 09:16:26 +0530 Subject: [PATCH 042/355] chore: Typo in payment reconciliation (backport #33686) (#33691) chore: Typo in payment reconciliation (#33686) (cherry picked from commit 0639d9e32a4bea0d60b85e367837dc88528b770a) Co-authored-by: Deepesh Garg --- .../doctype/payment_reconciliation/payment_reconciliation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py index 13712cee01d8..12c0b7a7bf72 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py @@ -334,7 +334,7 @@ def make_difference_entry(self, row): ) # Account Currency has balance - dr_or_cr = "debit" if self.party_type == "Customer" else "debit" + dr_or_cr = "debit" if self.party_type == "Customer" else "credit" reverse_dr_or_cr = "debit" if dr_or_cr == "credit" else "credit" journal_account = frappe._dict( From 8a0403119f246de5b79eb860ee429ec21d65cc1c Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Mon, 16 Jan 2023 21:03:18 +0100 Subject: [PATCH 043/355] fix: Sales ORder Connections on Material Request (cherry picked from commit e19161a8eef71d9064fb3c432328a8f06bff9da0) --- erpnext/selling/doctype/sales_order/sales_order_dashboard.py | 1 - 1 file changed, 1 deletion(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order_dashboard.py b/erpnext/selling/doctype/sales_order/sales_order_dashboard.py index 5c4b57813d31..cbc40bbf90be 100644 --- a/erpnext/selling/doctype/sales_order/sales_order_dashboard.py +++ b/erpnext/selling/doctype/sales_order/sales_order_dashboard.py @@ -14,7 +14,6 @@ def get_data(): }, "internal_links": { "Quotation": ["items", "prevdoc_docname"], - "Material Request": ["items", "material_request"], }, "transactions": [ { From 79f171c31a520478d943507e6be4be3fc3c650cf Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Tue, 17 Jan 2023 10:58:38 +0530 Subject: [PATCH 044/355] chore: ignore b028 --- .github/helper/.flake8_strict | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/helper/.flake8_strict b/.github/helper/.flake8_strict index 198ec7bfe54c..3e8f7dd11aba 100644 --- a/.github/helper/.flake8_strict +++ b/.github/helper/.flake8_strict @@ -66,7 +66,8 @@ ignore = F841, E713, E712, - B023 + B023, + B028 max-line-length = 200 From 192819516783c7575b30c8757a71b9765e6045f9 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 17 Jan 2023 11:32:06 +0530 Subject: [PATCH 045/355] fix: patch item_reposting_for_incorrect_sl_and_gl (cherry picked from commit dbde3a34210bbf63ea5647d46e3fc74c8f69ca97) --- erpnext/patches.txt | 2 +- erpnext/patches/v13_0/item_reposting_for_incorrect_sl_and_gl.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/erpnext/patches.txt b/erpnext/patches.txt index f4b1a06aea8d..aaaaa8ce0511 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -195,7 +195,6 @@ erpnext.patches.v13_0.update_project_template_tasks erpnext.patches.v13_0.convert_qi_parameter_to_link_field erpnext.patches.v13_0.add_naming_series_to_old_projects # 1-02-2021 erpnext.patches.v13_0.update_payment_terms_outstanding -erpnext.patches.v13_0.item_reposting_for_incorrect_sl_and_gl erpnext.patches.v13_0.delete_old_bank_reconciliation_doctypes erpnext.patches.v13_0.update_vehicle_no_reqd_condition erpnext.patches.v13_0.rename_membership_settings_to_non_profit_settings @@ -291,6 +290,7 @@ erpnext.patches.v13_0.update_exchange_rate_settings erpnext.patches.v14_0.delete_amazon_mws_doctype erpnext.patches.v13_0.set_work_order_qty_in_so_from_mr erpnext.patches.v13_0.update_accounts_in_loan_docs +erpnext.patches.v13_0.item_reposting_for_incorrect_sl_and_gl erpnext.patches.v14_0.update_batch_valuation_flag erpnext.patches.v14_0.delete_non_profit_doctypes erpnext.patches.v13_0.add_cost_center_in_loans diff --git a/erpnext/patches/v13_0/item_reposting_for_incorrect_sl_and_gl.py b/erpnext/patches/v13_0/item_reposting_for_incorrect_sl_and_gl.py index 75a5477be8f3..c0d715063a82 100644 --- a/erpnext/patches/v13_0/item_reposting_for_incorrect_sl_and_gl.py +++ b/erpnext/patches/v13_0/item_reposting_for_incorrect_sl_and_gl.py @@ -7,6 +7,7 @@ def execute(): doctypes_to_reload = [ + ("setup", "company"), ("stock", "repost_item_valuation"), ("stock", "stock_entry_detail"), ("stock", "purchase_receipt_item"), From cf439301f6ce1df5ac962b388bac0210079fac7e Mon Sep 17 00:00:00 2001 From: shamilnk Date: Tue, 17 Jan 2023 12:54:49 +0530 Subject: [PATCH 046/355] fix: the frappe throw message is corrected in the group task validation --- erpnext/projects/doctype/task/task.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/projects/doctype/task/task.py b/erpnext/projects/doctype/task/task.py index fa507854a695..1a7834257caf 100755 --- a/erpnext/projects/doctype/task/task.py +++ b/erpnext/projects/doctype/task/task.py @@ -97,7 +97,7 @@ def validate_status(self): if frappe.db.get_value("Task", d.task, "status") not in ("Completed", "Cancelled"): frappe.throw( _( - "Cannot complete task {0} as its dependant task {1} are not ccompleted / cancelled." + "Cannot complete task {0} as its dependant task {1} are not completed / cancelled." ).format(frappe.bold(self.name), frappe.bold(d.task)) ) From 9fa4c1a3bd4c6a4122f85d57c7beafa926ce44d1 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 17 Jan 2023 15:59:13 +0530 Subject: [PATCH 047/355] fix: Rate from LDC in TDS reports (backport #33699) (#33700) fix: Rate from LDC in TDS reports (#33699) (cherry picked from commit db9beb3cddc78376ccd30b57efafa35381b482d6) Co-authored-by: Deepesh Garg --- .../tax_withholding_category/tax_withholding_category.py | 6 ++---- .../report/tds_payable_monthly/tds_payable_monthly.py | 7 +++++++ 2 files changed, 9 insertions(+), 4 deletions(-) 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 b834d1404d09..1bce43fd310a 100644 --- a/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py +++ b/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py @@ -259,9 +259,7 @@ def get_tax_amount(party_type, parties, inv, tax_details, posting_date, pan_no=N if tax_deducted: net_total = inv.tax_withholding_net_total if ldc: - tax_amount = get_tds_amount_from_ldc( - ldc, parties, pan_no, tax_details, posting_date, net_total - ) + tax_amount = get_tds_amount_from_ldc(ldc, parties, tax_details, posting_date, net_total) else: tax_amount = net_total * tax_details.rate / 100 if net_total > 0 else 0 @@ -538,7 +536,7 @@ def get_invoice_total_without_tcs(inv, tax_details): return inv.grand_total - tcs_tax_row_amount -def get_tds_amount_from_ldc(ldc, parties, pan_no, tax_details, posting_date, net_total): +def get_tds_amount_from_ldc(ldc, parties, tax_details, posting_date, net_total): tds_amount = 0 limit_consumed = frappe.db.get_value( "Purchase Invoice", diff --git a/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.py b/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.py index 98838907be1f..bfe2a0fd2bec 100644 --- a/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.py +++ b/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.py @@ -4,6 +4,7 @@ import frappe from frappe import _ +from frappe.utils import flt def execute(filters=None): @@ -65,6 +66,12 @@ def get_result( else: total_amount_credited += entry.credit + ## Check if ldc is applied and show rate as per ldc + actual_rate = (tds_deducted / total_amount_credited) * 100 + + if flt(actual_rate) < flt(rate): + rate = actual_rate + if tds_deducted: row = { "pan" From f88c8c48c98fa44e2058bc66f6e63c4ca5153d7e Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 17 Jan 2023 21:05:49 +0530 Subject: [PATCH 048/355] fix: Missing constructor args in Bank Reco Tool (#33705) fix: Missing constructor args in Bank Reco Tool (#33705) (cherry picked from commit 6b31c27ed6824e5422f6c349d5828fb67df9afe4) Co-authored-by: Deepesh Garg --- erpnext/accounts/doctype/journal_entry/journal_entry.json | 5 ++--- erpnext/public/js/bank_reconciliation_tool/dialog_manager.js | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.json b/erpnext/accounts/doctype/journal_entry/journal_entry.json index 3f69d5c7cd8d..498fc7c295f4 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.json +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.json @@ -137,8 +137,7 @@ "fieldname": "finance_book", "fieldtype": "Link", "label": "Finance Book", - "options": "Finance Book", - "read_only": 1 + "options": "Finance Book" }, { "fieldname": "2_add_edit_gl_entries", @@ -539,7 +538,7 @@ "idx": 176, "is_submittable": 1, "links": [], - "modified": "2022-11-28 17:40:01.241908", + "modified": "2023-01-17 12:53:53.280620", "modified_by": "Administrator", "module": "Accounts", "name": "Journal Entry", diff --git a/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js b/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js index 51664f8885ee..911343d8b64c 100644 --- a/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js +++ b/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js @@ -1,7 +1,7 @@ frappe.provide("erpnext.accounts.bank_reconciliation"); erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { - constructor(company, bank_account) { + constructor(company, bank_account, bank_statement_from_date, bank_statement_to_date, filter_by_reference_date, from_reference_date, to_reference_date) { this.bank_account = bank_account; this.company = company; this.make_dialog(); From e910c949f7d0ad3de2501546aadf333492f2b92f Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 17 Jan 2023 16:02:54 +0000 Subject: [PATCH 049/355] chore(release): Bumped to Version 14.13.0 # [14.13.0](https://github.com/frappe/erpnext/compare/v14.12.1...v14.13.0) (2023-01-17) ### Bug Fixes * allow to create sales order from expired quotation ([#33582](https://github.com/frappe/erpnext/issues/33582)) ([fe51343](https://github.com/frappe/erpnext/commit/fe513433b282ccce57745686254a26eeb66eaf3f)) * asset repair link ([bc55f44](https://github.com/frappe/erpnext/commit/bc55f44de6719483b158dec193293d61eed04905)) * asset value in fixed asset register ([#33608](https://github.com/frappe/erpnext/issues/33608)) ([4d2497f](https://github.com/frappe/erpnext/commit/4d2497faf1d3987d0b87c6b48bafbd4c3e2df852)) * attribute error while submitting Repost PLE ([0431a57](https://github.com/frappe/erpnext/commit/0431a57ff067e492fdedd3bd767c7acb1402e00d)) * better comparision of difference value between stock and account ([5869fcb](https://github.com/frappe/erpnext/commit/5869fcbd861fbd5202c24badd06fa2a80b4bc820)) * minor filter issue while reconciliation tool from bench console ([bddf330](https://github.com/frappe/erpnext/commit/bddf3307542cdf98d16016c94d11a775ace019db)) * Missing constructor args in Bank Reco Tool ([#33705](https://github.com/frappe/erpnext/issues/33705)) ([f88c8c4](https://github.com/frappe/erpnext/commit/f88c8c48c98fa44e2058bc66f6e63c4ca5153d7e)) * only group similar items in print format if group_same_items is checked in pick list (backport [#33627](https://github.com/frappe/erpnext/issues/33627)) ([#33630](https://github.com/frappe/erpnext/issues/33630)) ([28f2d35](https://github.com/frappe/erpnext/commit/28f2d357abb6f59762ff2d721944dc897709e21f)) * patch item_reposting_for_incorrect_sl_and_gl ([1928195](https://github.com/frappe/erpnext/commit/192819516783c7575b30c8757a71b9765e6045f9)) * Rate from LDC in TDS reports (backport [#33699](https://github.com/frappe/erpnext/issues/33699)) ([#33700](https://github.com/frappe/erpnext/issues/33700)) ([9fa4c1a](https://github.com/frappe/erpnext/commit/9fa4c1a3bd4c6a4122f85d57c7beafa926ce44d1)) * Return against internal purchase invoice (backport [#33635](https://github.com/frappe/erpnext/issues/33635)) ([#33658](https://github.com/frappe/erpnext/issues/33658)) ([35fbd67](https://github.com/frappe/erpnext/commit/35fbd67a938b7ffb5bbb7a5a39b4c9a9558acd33)) * Sales ORder Connections on Material Request ([8a04031](https://github.com/frappe/erpnext/commit/8a0403119f246de5b79eb860ee429ec21d65cc1c)) * Updating SO throws ordered_qty not allowed to change after submission ([f915c18](https://github.com/frappe/erpnext/commit/f915c181376f1c3e90ffd3ccde1ddf8a3c60ec66)) * zero rm-cost in SCR ([2dfbc6e](https://github.com/frappe/erpnext/commit/2dfbc6e4ebb39efe8c497205c3351cf0f602622d)) ### Features * Date filters on bank reconciliation tool ([#33271](https://github.com/frappe/erpnext/issues/33271)) ([91b08f1](https://github.com/frappe/erpnext/commit/91b08f179a4e29f3b9400190faa50154cc587709)) * provision to select date type based on filter ([4d65d6f](https://github.com/frappe/erpnext/commit/4d65d6f9bd73008db5682027e1ceb44e44d64e82)) ### Performance Improvements * improve reconciliation speed on JE's with 1000's of rows ([8a498ed](https://github.com/frappe/erpnext/commit/8a498ed029b9ffc2adc8eadade070f154ff5d768)) ### Reverts * Reverting changes done on 33495 ([#33662](https://github.com/frappe/erpnext/issues/33662)) ([23b9f66](https://github.com/frappe/erpnext/commit/23b9f661b641f9727cfdbad24f58110d839da5a9)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index e3f67077086d..b1d128aac00c 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.12.1" +__version__ = "14.13.0" def get_default_company(user=None): From 21cf929c7ac4a41cd0527ceb622d74e0940828d1 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 18 Jan 2023 15:29:32 +0530 Subject: [PATCH 050/355] fix: local variable 'stock_rbnb' referenced before assignment (cherry picked from commit 1de4742ffb934331e333b5206009e2ed9dd0c1ab) --- .../subcontracting_receipt/subcontracting_receipt.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py index e8faa4868f2f..f4fd4de169dc 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py @@ -262,15 +262,17 @@ def update_status(self, status=None, update_modified=False): def get_gl_entries(self, warehouse_account=None): from erpnext.accounts.general_ledger import process_gl_map + if not erpnext.is_perpetual_inventory_enabled(self.company): + return [] + gl_entries = [] self.make_item_gl_entries(gl_entries, warehouse_account) return process_gl_map(gl_entries) def make_item_gl_entries(self, gl_entries, warehouse_account=None): - if erpnext.is_perpetual_inventory_enabled(self.company): - stock_rbnb = self.get_company_default("stock_received_but_not_billed") - expenses_included_in_valuation = self.get_company_default("expenses_included_in_valuation") + stock_rbnb = self.get_company_default("stock_received_but_not_billed") + expenses_included_in_valuation = self.get_company_default("expenses_included_in_valuation") warehouse_with_no_account = [] From 26eb0e2fcd3ecd00e8ddfb03a22e29b7ab635aeb Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Mon, 16 Jan 2023 16:01:40 +0530 Subject: [PATCH 051/355] refactor: rewrite `pick_list.py` queries in `QB` (cherry picked from commit 0ed655265533e2527791f7caf09cd5af7b6373f6) --- erpnext/stock/doctype/pick_list/pick_list.py | 58 ++++++++------------ 1 file changed, 23 insertions(+), 35 deletions(-) diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index 9c6f4f4a3529..808f19e2740e 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -11,7 +11,7 @@ from frappe.model.document import Document from frappe.model.mapper import map_child_doc from frappe.query_builder import Case -from frappe.query_builder.functions import Locate +from frappe.query_builder.functions import IfNull, Locate, Sum from frappe.utils import cint, floor, flt, today from frappe.utils.nestedset import get_descendants_of @@ -503,42 +503,30 @@ def get_available_item_locations_for_serialized_item( def get_available_item_locations_for_batched_item( item_code, from_warehouses, required_qty, company ): - warehouse_condition = "and warehouse in %(warehouses)s" if from_warehouses else "" - batch_locations = frappe.db.sql( - """ - SELECT - sle.`warehouse`, - sle.`batch_no`, - SUM(sle.`actual_qty`) AS `qty` - FROM - `tabStock Ledger Entry` sle, `tabBatch` batch - WHERE - sle.batch_no = batch.name - and sle.`item_code`=%(item_code)s - and sle.`company` = %(company)s - and batch.disabled = 0 - and sle.is_cancelled=0 - and IFNULL(batch.`expiry_date`, '2200-01-01') > %(today)s - {warehouse_condition} - GROUP BY - sle.`warehouse`, - sle.`batch_no`, - sle.`item_code` - HAVING `qty` > 0 - ORDER BY IFNULL(batch.`expiry_date`, '2200-01-01'), batch.`creation`, sle.`batch_no`, sle.`warehouse` - """.format( - warehouse_condition=warehouse_condition - ), - { # nosec - "item_code": item_code, - "company": company, - "today": today(), - "warehouses": from_warehouses, - }, - as_dict=1, + sle = frappe.qb.DocType("Stock Ledger Entry") + batch = frappe.qb.DocType("Batch") + + query = ( + frappe.qb.from_(sle) + .from_(batch) + .select(sle.warehouse, sle.batch_no, Sum(sle.actual_qty).as_("qty")) + .where( + (sle.batch_no == batch.name) + & (sle.item_code == item_code) + & (sle.company == company) + & (batch.disabled == 0) + & (sle.is_cancelled == 0) + & (IfNull(batch.expiry_date, "2200-01-01") > today()) + ) + .groupby(sle.warehouse, sle.batch_no, sle.item_code) + .having(Sum(sle.actual_qty) > 0) + .orderby(IfNull(batch.expiry_date, "2200-01-01"), batch.creation, sle.batch_no, sle.warehouse) ) - return batch_locations + if from_warehouses: + query = query.where(sle.warehouse.isin(from_warehouses)) + + return query.run(as_dict=True) def get_available_item_locations_for_serial_and_batched_item( From 9bc2675493deaf7159d9972963100c907f85e2ce Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 18 Jan 2023 21:11:37 +0530 Subject: [PATCH 052/355] refactor: make payments app a soft dependency (backport #33245) (#33677) refactor: make payments app a soft dependency (#33245) refactor: make payment app a soft dependency (cherry picked from commit 0b86b1baca3cd6ba4001f3a4ec747a9aa49d569a) Co-authored-by: Ankush Menat --- .github/helper/site_config_mariadb.json | 2 +- .../payment_gateway_account.js | 1 + .../doctype/payment_request/payment_request.py | 15 +++++++++++---- .../subscription_plan/subscription_plan.js | 6 +++++- .../e_commerce_settings/e_commerce_settings.js | 6 ++++++ .../gocardless_settings/gocardless_settings.js | 3 +++ .../gocardless_settings/gocardless_settings.json | 3 +-- .../gocardless_settings/gocardless_settings.py | 6 +++++- .../doctype/mpesa_settings/mpesa_settings.js | 2 ++ .../doctype/mpesa_settings/mpesa_settings.py | 5 ++++- .../erpnext_integrations/stripe_integration.py | 9 ++++++++- erpnext/hooks.py | 1 - erpnext/public/js/utils.js | 12 +++++++++++- erpnext/utilities/__init__.py | 16 ++++++++++++++++ 14 files changed, 74 insertions(+), 13 deletions(-) diff --git a/.github/helper/site_config_mariadb.json b/.github/helper/site_config_mariadb.json index 948ad08babd0..ff40818fa5bf 100644 --- a/.github/helper/site_config_mariadb.json +++ b/.github/helper/site_config_mariadb.json @@ -11,6 +11,6 @@ "root_login": "root", "root_password": "travis", "host_name": "http://test_site:8000", - "install_apps": ["erpnext"], + "install_apps": ["payments", "erpnext"], "throttle_user_limit": 100 } diff --git a/erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.js b/erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.js index 8f09bc369129..aff067eab893 100644 --- a/erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.js +++ b/erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.js @@ -3,6 +3,7 @@ frappe.ui.form.on('Payment Gateway Account', { refresh(frm) { + erpnext.utils.check_payments_app(); if(!frm.doc.__islocal) { frm.set_df_property('payment_gateway', 'read_only', 1); } diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index f63fba1b7164..d8c001161406 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -9,7 +9,6 @@ from frappe.model.document import Document from frappe.utils import flt, get_url, nowdate from frappe.utils.background_jobs import enqueue -from payments.utils import get_payment_gateway_controller from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import ( get_accounting_dimensions, @@ -22,6 +21,14 @@ from erpnext.accounts.party import get_party_account, get_party_bank_account from erpnext.accounts.utils import get_account_currency from erpnext.erpnext_integrations.stripe_integration import create_stripe_subscription +from erpnext.utilities import payment_app_import_guard + + +def _get_payment_gateway_controller(*args, **kwargs): + with payment_app_import_guard(): + from payments.utils import get_payment_gateway_controller + + return get_payment_gateway_controller(*args, **kwargs) class PaymentRequest(Document): @@ -110,7 +117,7 @@ def on_submit(self): self.request_phone_payment() def request_phone_payment(self): - controller = get_payment_gateway_controller(self.payment_gateway) + controller = _get_payment_gateway_controller(self.payment_gateway) request_amount = self.get_request_amount() payment_record = dict( @@ -159,7 +166,7 @@ def make_invoice(self): def payment_gateway_validation(self): try: - controller = get_payment_gateway_controller(self.payment_gateway) + controller = _get_payment_gateway_controller(self.payment_gateway) if hasattr(controller, "on_payment_request_submission"): return controller.on_payment_request_submission(self) else: @@ -192,7 +199,7 @@ def get_payment_url(self): ) data.update({"company": frappe.defaults.get_defaults().company}) - controller = get_payment_gateway_controller(self.payment_gateway) + controller = _get_payment_gateway_controller(self.payment_gateway) controller.validate_transaction_currency(self.currency) if hasattr(controller, "validate_minimum_transaction_amount"): diff --git a/erpnext/accounts/doctype/subscription_plan/subscription_plan.js b/erpnext/accounts/doctype/subscription_plan/subscription_plan.js index 7d6f2aed100f..00727f103f98 100644 --- a/erpnext/accounts/doctype/subscription_plan/subscription_plan.js +++ b/erpnext/accounts/doctype/subscription_plan/subscription_plan.js @@ -5,5 +5,9 @@ frappe.ui.form.on('Subscription Plan', { price_determination: function(frm) { frm.toggle_reqd("cost", frm.doc.price_determination === 'Fixed rate'); frm.toggle_reqd("price_list", frm.doc.price_determination === 'Based on price list'); - } + }, + + subscription_plan: function (frm) { + erpnext.utils.check_payments_app(); + }, }); diff --git a/erpnext/e_commerce/doctype/e_commerce_settings/e_commerce_settings.js b/erpnext/e_commerce/doctype/e_commerce_settings/e_commerce_settings.js index 69b9cfaa6872..c37fa2f6eae4 100644 --- a/erpnext/e_commerce/doctype/e_commerce_settings/e_commerce_settings.js +++ b/erpnext/e_commerce/doctype/e_commerce_settings/e_commerce_settings.js @@ -48,5 +48,11 @@ frappe.ui.form.on("E Commerce Settings", { frm.set_value('default_customer_group', ''); frm.set_value('quotation_series', ''); } + }, + + enable_checkout: function(frm) { + if (frm.doc.enable_checkout) { + erpnext.utils.check_payments_app(); + } } }); diff --git a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.js b/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.js index b649d9d6cc91..241129719b82 100644 --- a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.js +++ b/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.js @@ -2,4 +2,7 @@ // For license information, please see license.txt frappe.ui.form.on('GoCardless Settings', { + refresh: function(frm) { + erpnext.utils.check_payments_app(); + } }); diff --git a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.json b/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.json index 9738106a30de..cca36536ac4f 100644 --- a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.json +++ b/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.json @@ -173,7 +173,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2018-02-12 14:18:47.209114", + "modified": "2022-02-12 14:18:47.209114", "modified_by": "Administrator", "module": "ERPNext Integrations", "name": "GoCardless Settings", @@ -201,7 +201,6 @@ "write": 1 } ], - "quick_entry": 1, "read_only": 0, "read_only_onload": 0, "show_name_in_global_search": 0, diff --git a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.py b/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.py index f9a293fc30e7..4a29a6a21de5 100644 --- a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.py +++ b/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.py @@ -10,7 +10,8 @@ from frappe.integrations.utils import create_request_log from frappe.model.document import Document from frappe.utils import call_hook_method, cint, flt, get_url -from payments.utils import create_payment_gateway + +from erpnext.utilities import payment_app_import_guard class GoCardlessSettings(Document): @@ -30,6 +31,9 @@ def initialize_client(self): frappe.throw(e) def on_update(self): + with payment_app_import_guard(): + from payments.utils import create_payment_gateway + create_payment_gateway( "GoCardless-" + self.gateway_name, settings="GoCardLess Settings", controller=self.gateway_name ) diff --git a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.js b/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.js index 7c8ae5c80231..447d720ca244 100644 --- a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.js +++ b/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.js @@ -7,6 +7,8 @@ frappe.ui.form.on('Mpesa Settings', { }, refresh: function(frm) { + erpnext.utils.check_payments_app(); + frappe.realtime.on("refresh_mpesa_dashboard", function(){ frm.reload_doc(); frm.events.setup_account_balance_html(frm); diff --git a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.py b/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.py index b5347838647a..a298e11eaf52 100644 --- a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.py +++ b/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.py @@ -9,13 +9,13 @@ from frappe.integrations.utils import create_request_log from frappe.model.document import Document from frappe.utils import call_hook_method, fmt_money, get_request_site_address -from payments.utils import create_payment_gateway from erpnext.erpnext_integrations.doctype.mpesa_settings.mpesa_connector import MpesaConnector from erpnext.erpnext_integrations.doctype.mpesa_settings.mpesa_custom_fields import ( create_custom_pos_fields, ) from erpnext.erpnext_integrations.utils import create_mode_of_payment +from erpnext.utilities import payment_app_import_guard class MpesaSettings(Document): @@ -30,6 +30,9 @@ def validate_transaction_currency(self, currency): ) def on_update(self): + with payment_app_import_guard(): + from payments.utils import create_payment_gateway + create_custom_pos_fields() create_payment_gateway( "Mpesa-" + self.payment_gateway_name, diff --git a/erpnext/erpnext_integrations/stripe_integration.py b/erpnext/erpnext_integrations/stripe_integration.py index 2d7e8a5d31e7..634e5c2e89f4 100644 --- a/erpnext/erpnext_integrations/stripe_integration.py +++ b/erpnext/erpnext_integrations/stripe_integration.py @@ -2,12 +2,16 @@ # For license information, please see license.txt import frappe -import stripe from frappe import _ from frappe.integrations.utils import create_request_log +from erpnext.utilities import payment_app_import_guard + def create_stripe_subscription(gateway_controller, data): + with payment_app_import_guard(): + import stripe + stripe_settings = frappe.get_doc("Stripe Settings", gateway_controller) stripe_settings.data = frappe._dict(data) @@ -35,6 +39,9 @@ def create_stripe_subscription(gateway_controller, data): def create_subscription_on_stripe(stripe_settings): + with payment_app_import_guard(): + import stripe + items = [] for payment_plan in stripe_settings.payment_plans: plan = frappe.db.get_value("Subscription Plan", payment_plan.plan, "product_price_id") diff --git a/erpnext/hooks.py b/erpnext/hooks.py index 6bc17a3675a8..797f8aa650f1 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -10,7 +10,6 @@ app_license = "GNU General Public License (v3)" source_link = "https://github.com/frappe/erpnext" app_logo_url = "/assets/erpnext/images/erpnext-logo.svg" -required_apps = ["payments"] develop_version = "14.x.x-develop" diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js index 6d64625270bf..d37b7bb43b38 100755 --- a/erpnext/public/js/utils.js +++ b/erpnext/public/js/utils.js @@ -333,8 +333,18 @@ $.extend(erpnext.utils, { } frappe.ui.form.make_quick_entry(doctype, null, null, new_doc); }); - } + }, + // check if payments app is installed on site, if not warn user. + check_payments_app: () => { + if (frappe.boot.versions && !frappe.boot.versions.payments) { + const marketplace_link = 'Marketplace' + const github_link = 'GitHub' + const msg = __("payments app is not installed. Please install it from {0} or {1}", [marketplace_link, github_link]) + frappe.msgprint(msg); + } + + }, }); erpnext.utils.select_alternate_items = function(opts) { diff --git a/erpnext/utilities/__init__.py b/erpnext/utilities/__init__.py index c2b4229f171b..24bfdc63af63 100644 --- a/erpnext/utilities/__init__.py +++ b/erpnext/utilities/__init__.py @@ -1,6 +1,9 @@ ## temp utility +from contextlib import contextmanager + import frappe +from frappe import _ from frappe.utils import cstr from erpnext.utilities.activation import get_level @@ -35,3 +38,16 @@ def get_site_info(site_info): domain = frappe.get_cached_value("Company", cstr(company), "domain") return {"company": company, "domain": domain, "activation": get_level()} + + +@contextmanager +def payment_app_import_guard(): + marketplace_link = 'Marketplace' + github_link = 'GitHub' + msg = _("payments app is not installed. Please install it from {} or {}").format( + marketplace_link, github_link + ) + try: + yield + except ImportError: + frappe.throw(msg, title=_("Missing Payments App")) From 8c12f7f2f25d74ea323cd191f1c3c08c11002ed6 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 18 Jan 2023 23:21:29 +0530 Subject: [PATCH 053/355] fix: don't add template item in sales/purchase transaction (cherry picked from commit 2c83fff1a1a4aa7053159f58c68d9ed697a73742) --- .../buying/doctype/purchase_order/test_purchase_order.py | 7 ++++++- erpnext/stock/get_item_details.py | 6 ++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py index 572d9d3865c1..f0360b27dc04 100644 --- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py @@ -889,6 +889,11 @@ def test_internal_transfer_flow(self): self.assertEqual(po.status, "Completed") self.assertEqual(mr.status, "Received") + def test_variant_item_po(self): + po = create_purchase_order(item_code="_Test Variant Item", qty=1, rate=100, do_not_save=1) + + self.assertRaises(frappe.ValidationError, po.save) + def prepare_data_for_internal_transfer(): from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_internal_supplier @@ -994,8 +999,8 @@ def create_purchase_order(**args): }, ) - po.set_missing_values() if not args.do_not_save: + po.set_missing_values() po.insert() if not args.do_not_submit: if po.is_subcontracted: diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 363dc0a63f3f..5af144110f0c 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -236,8 +236,10 @@ def validate_item_details(args, item): validate_end_of_life(item.name, item.end_of_life, item.disabled) - if args.transaction_type == "selling" and cint(item.has_variants): - throw(_("Item {0} is a template, please select one of its variants").format(item.name)) + if cint(item.has_variants): + msg = f"Item {item.name} is a template, please select one of its variants" + + throw(_(msg), title=_("Template Item Selected")) elif args.transaction_type == "buying" and args.doctype != "Material Request": if args.get("is_subcontracted"): From 6544cb882285d01e7bfa4e60e04901fb870eddb0 Mon Sep 17 00:00:00 2001 From: unknown <57280279+SvbZ3r0@users.noreply.github.com> Date: Thu, 12 Jan 2023 07:44:57 +0530 Subject: [PATCH 054/355] fix: rewrite logic for duplicate check in Item Attribute Previously, Item Attribute values were not checked for case-insensitive duplicates, and Item tttribute abbreviations were forced to be uppercase. This commit fixes both problems. (cherry picked from commit 974e12c8378c729647965bdfd65f52f89154609b) --- .../stock/doctype/item_attribute/item_attribute.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/erpnext/stock/doctype/item_attribute/item_attribute.py b/erpnext/stock/doctype/item_attribute/item_attribute.py index 391ff06918a9..018d5257e1de 100644 --- a/erpnext/stock/doctype/item_attribute/item_attribute.py +++ b/erpnext/stock/doctype/item_attribute/item_attribute.py @@ -74,11 +74,12 @@ def validate_numeric(self): def validate_duplication(self): values, abbrs = [], [] for d in self.item_attribute_values: - d.abbr = d.abbr.upper() - if d.attribute_value in values: - frappe.throw(_("{0} must appear only once").format(d.attribute_value)) + if d.attribute_value.lower() in map(str.lower, values): + frappe.throw( + _("Attribute value: {0} must appear only once").format(d.attribute_value.title())) values.append(d.attribute_value) - if d.abbr in abbrs: - frappe.throw(_("{0} must appear only once").format(d.abbr)) + if d.abbr.lower() in map(str.lower, abbrs): + frappe.throw( + _("Abbreviation: {0} must appear only once").format(d.abbr.title())) abbrs.append(d.abbr) From dedc9ecc7ca806fae8c2d87cb442ac2e2d027a0a Mon Sep 17 00:00:00 2001 From: unknown <57280279+SvbZ3r0@users.noreply.github.com> Date: Thu, 12 Jan 2023 20:53:12 +0530 Subject: [PATCH 055/355] fix: linting (cherry picked from commit 2ca4d3fb71587bae26f23f2c748884cc1b27b744) --- erpnext/stock/doctype/item_attribute/item_attribute.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/erpnext/stock/doctype/item_attribute/item_attribute.py b/erpnext/stock/doctype/item_attribute/item_attribute.py index 018d5257e1de..ac4c313e28a8 100644 --- a/erpnext/stock/doctype/item_attribute/item_attribute.py +++ b/erpnext/stock/doctype/item_attribute/item_attribute.py @@ -75,11 +75,9 @@ def validate_duplication(self): values, abbrs = [], [] for d in self.item_attribute_values: if d.attribute_value.lower() in map(str.lower, values): - frappe.throw( - _("Attribute value: {0} must appear only once").format(d.attribute_value.title())) + frappe.throw(_("Attribute value: {0} must appear only once").format(d.attribute_value.title())) values.append(d.attribute_value) if d.abbr.lower() in map(str.lower, abbrs): - frappe.throw( - _("Abbreviation: {0} must appear only once").format(d.abbr.title())) + frappe.throw(_("Abbreviation: {0} must appear only once").format(d.abbr.title())) abbrs.append(d.abbr) From dffdc67455ac07ebb4f66bc85c3274acb6290d0b Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Fri, 20 Jan 2023 15:38:26 +0530 Subject: [PATCH 056/355] fix: fb issue in asset chart, asset split and reverse_depreciation_entry_made_after_disposal --- erpnext/assets/doctype/asset/asset.js | 4 ++++ erpnext/assets/doctype/asset/asset.py | 13 +++++++++++-- erpnext/assets/doctype/asset/depreciation.py | 5 ++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js index 7791b1174443..8940b28ca6cd 100644 --- a/erpnext/assets/doctype/asset/asset.js +++ b/erpnext/assets/doctype/asset/asset.js @@ -206,6 +206,10 @@ frappe.ui.form.on('Asset', { }, setup_chart: function(frm) { + if(frm.doc.finance_books.length > 1) { + return + } + var x_intervals = [frm.doc.purchase_date]; var asset_values = [frm.doc.gross_purchase_amount]; var last_depreciation_date = frm.doc.purchase_date; diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index ca6be9b57b2d..969689727ab6 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -1149,9 +1149,13 @@ def update_existing_asset(asset, remaining_qty): expected_value_after_useful_life, ) - accumulated_depreciation = 0 + processed_finance_books = [] for term in asset.get("schedules"): + if int(term.finance_book_id) not in processed_finance_books: + accumulated_depreciation = 0 + processed_finance_books.append(int(term.finance_book_id)) + depreciation_amount = flt((term.depreciation_amount * remaining_qty) / asset.asset_quantity) frappe.db.set_value( "Depreciation Schedule", term.name, "depreciation_amount", depreciation_amount @@ -1173,7 +1177,6 @@ def create_new_asset_after_split(asset, split_qty): new_asset.opening_accumulated_depreciation = opening_accumulated_depreciation new_asset.asset_quantity = split_qty new_asset.split_from = asset.name - accumulated_depreciation = 0 for finance_book in new_asset.get("finance_books"): finance_book.value_after_depreciation = flt( @@ -1183,7 +1186,13 @@ def create_new_asset_after_split(asset, split_qty): (finance_book.expected_value_after_useful_life * split_qty) / asset.asset_quantity ) + processed_finance_books = [] + for term in new_asset.get("schedules"): + if int(term.finance_book_id) not in processed_finance_books: + accumulated_depreciation = 0 + processed_finance_books.append(int(term.finance_book_id)) + depreciation_amount = flt((term.depreciation_amount * split_qty) / asset.asset_quantity) term.depreciation_amount = depreciation_amount accumulated_depreciation += depreciation_amount diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py index c6daccc9728b..92d040d4ebbb 100644 --- a/erpnext/assets/doctype/asset/depreciation.py +++ b/erpnext/assets/doctype/asset/depreciation.py @@ -350,7 +350,10 @@ def reverse_depreciation_entry_made_after_disposal(asset, date): asset.flags.ignore_validate_update_after_submit = True schedule.journal_entry = None depreciation_amount = get_depreciation_amount_in_je(reverse_journal_entry) - asset.finance_books[0].value_after_depreciation += depreciation_amount + + idx = cint(schedule.finance_book_id) + asset.finance_books[idx - 1].value_after_depreciation += depreciation_amount + asset.save() From 0740120914866f317daa15959283a184606ac487 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 20 Jan 2023 18:54:17 +0530 Subject: [PATCH 057/355] fix: Patch to update reference_due_date in Journal Entry (#33616) * fix: Patch to update reference_due_date in Journal Entry (#33616) --- erpnext/patches.txt | 1 + .../update_reference_due_date_in_journal_entry.py | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 erpnext/patches/v14_0/update_reference_due_date_in_journal_entry.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index aaaaa8ce0511..7b06aa00cfaa 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -268,6 +268,7 @@ 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 erpnext.patches.v13_0.create_accounting_dimensions_for_asset_repair +erpnext.patches.v14_0.update_reference_due_date_in_journal_entry [post_model_sync] execute:frappe.delete_doc_if_exists('Workspace', 'ERPNext Integrations Settings') diff --git a/erpnext/patches/v14_0/update_reference_due_date_in_journal_entry.py b/erpnext/patches/v14_0/update_reference_due_date_in_journal_entry.py new file mode 100644 index 000000000000..70003125a54b --- /dev/null +++ b/erpnext/patches/v14_0/update_reference_due_date_in_journal_entry.py @@ -0,0 +1,12 @@ +import frappe + + +def execute(): + if frappe.db.get_value("Journal Entry Account", {"reference_due_date": ""}): + frappe.db.sql( + """ + UPDATE `tabJournal Entry Account` + SET reference_due_date = NULL + WHERE reference_due_date = '' + """ + ) From 1a33324b4a0af094653ff47f90637c652c5c2266 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 20 Jan 2023 19:25:28 +0530 Subject: [PATCH 058/355] fix(ecommerce): breadcrumb: fallback to `/all-products` (#33718) fix(ecommerce): breadcrumb: fallback to `/all-products` (#33718) --- .../e_commerce/doctype/website_item/test_website_item.py | 7 +++++-- erpnext/setup/doctype/item_group/item_group.py | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/erpnext/e_commerce/doctype/website_item/test_website_item.py b/erpnext/e_commerce/doctype/website_item/test_website_item.py index 828c655e7937..bbe04d5514d8 100644 --- a/erpnext/e_commerce/doctype/website_item/test_website_item.py +++ b/erpnext/e_commerce/doctype/website_item/test_website_item.py @@ -174,7 +174,10 @@ def test_impact_on_merging_items(self): # Website Item Portal Tests Begin def test_website_item_breadcrumbs(self): - "Check if breadcrumbs include homepage, product listing navigation page, parent item group(s) and item group." + """ + Check if breadcrumbs include homepage, product listing navigation page, + parent item group(s) and item group + """ from erpnext.setup.doctype.item_group.item_group import get_parent_item_groups item_code = "Test Breadcrumb Item" @@ -197,7 +200,7 @@ def test_website_item_breadcrumbs(self): breadcrumbs = get_parent_item_groups(item.item_group) self.assertEqual(breadcrumbs[0]["name"], "Home") - self.assertEqual(breadcrumbs[1]["name"], "Shop by Category") + self.assertEqual(breadcrumbs[1]["name"], "All Products") self.assertEqual(breadcrumbs[2]["name"], "_Test Item Group B") # parent item group self.assertEqual(breadcrumbs[3]["name"], "_Test Item Group B - 1") diff --git a/erpnext/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py index 95bbf84616b4..2fdfcf647d01 100644 --- a/erpnext/setup/doctype/item_group/item_group.py +++ b/erpnext/setup/doctype/item_group/item_group.py @@ -148,12 +148,12 @@ def get_item_for_list_in_html(context): def get_parent_item_groups(item_group_name, from_item=False): - base_nav_page = {"name": _("Shop by Category"), "route": "/shop-by-category"} + base_nav_page = {"name": _("All Products"), "route": "/all-products"} if from_item and frappe.request.environ.get("HTTP_REFERER"): # base page after 'Home' will vary on Item page last_page = frappe.request.environ["HTTP_REFERER"].split("/")[-1].split("?")[0] - if last_page and last_page in ("shop-by-category", "all-products"): + if last_page and last_page == "shop-by-category": base_nav_page_title = " ".join(last_page.split("-")).title() base_nav_page = {"name": _(base_nav_page_title), "route": "/" + last_page} From cf6d4546063f66a36dede61941800c18e19fbed2 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 20 Jan 2023 19:26:29 +0530 Subject: [PATCH 059/355] fix: use hash based naming for tax withheld vouchers child table (backport #33643) (#33748) fix: use hash based naming for tax withheld vouchers child table (#33643) (cherry picked from commit 17045f88a196336544632d50e4180b9ab7ab7c5f) Co-authored-by: Ritwik Puri --- .../tax_withheld_vouchers/tax_withheld_vouchers.json | 6 +++--- erpnext/patches.txt | 1 + .../change_autoname_for_tax_withheld_vouchers.py | 12 ++++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 erpnext/patches/v14_0/change_autoname_for_tax_withheld_vouchers.py diff --git a/erpnext/accounts/doctype/tax_withheld_vouchers/tax_withheld_vouchers.json b/erpnext/accounts/doctype/tax_withheld_vouchers/tax_withheld_vouchers.json index ce8c0c370865..46b430c6594b 100644 --- a/erpnext/accounts/doctype/tax_withheld_vouchers/tax_withheld_vouchers.json +++ b/erpnext/accounts/doctype/tax_withheld_vouchers/tax_withheld_vouchers.json @@ -1,6 +1,6 @@ { "actions": [], - "autoname": "autoincrement", + "autoname": "hash", "creation": "2022-09-13 16:18:59.404842", "doctype": "DocType", "editable_grid": 1, @@ -36,11 +36,11 @@ "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2022-09-13 23:40:41.479208", + "modified": "2023-01-13 13:40:41.479208", "modified_by": "Administrator", "module": "Accounts", "name": "Tax Withheld Vouchers", - "naming_rule": "Autoincrement", + "naming_rule": "Random", "owner": "Administrator", "permissions": [], "sort_field": "modified", diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 7b06aa00cfaa..a6c822a1a14d 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -324,3 +324,4 @@ erpnext.patches.v14_0.create_incoterms_and_migrate_shipment erpnext.patches.v14_0.setup_clear_repost_logs erpnext.patches.v14_0.create_accounting_dimensions_for_payment_request erpnext.patches.v14_0.update_entry_type_for_journal_entry +erpnext.patches.v14_0.change_autoname_for_tax_withheld_vouchers diff --git a/erpnext/patches/v14_0/change_autoname_for_tax_withheld_vouchers.py b/erpnext/patches/v14_0/change_autoname_for_tax_withheld_vouchers.py new file mode 100644 index 000000000000..e20ba73dbbfb --- /dev/null +++ b/erpnext/patches/v14_0/change_autoname_for_tax_withheld_vouchers.py @@ -0,0 +1,12 @@ +import frappe + + +def execute(): + if ( + frappe.db.sql( + """select data_type FROM information_schema.columns + where column_name = 'name' and table_name = 'tabTax Withheld Vouchers'""" + )[0][0] + == "bigint" + ): + frappe.db.change_column_type("Tax Withheld Vouchers", "name", "varchar(140)") From 1c1c903fee23e13da8a8415957e9106bfff0745a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 20 Jan 2023 19:43:31 +0530 Subject: [PATCH 060/355] fix: calculate correct amount for qty == 0 (#33739) fix: calculate correct amount for qty == 0 (#33739) (cherry picked from commit 327b6fdb32c07491058002abe4d06f2d45060061) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- .../public/js/controllers/taxes_and_totals.js | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index 1f8a5e39f25c..271b563c732a 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -122,24 +122,16 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { calculate_item_values() { var me = this; if (!this.discount_amount_applied) { - $.each(this.frm.doc["items"] || [], function(i, item) { + for (item of this.frm.doc.items || []) { frappe.model.round_floats_in(item); item.net_rate = item.rate; - - if ((!item.qty) && me.frm.doc.is_return) { - item.amount = flt(item.rate * -1, precision("amount", item)); - } else if ((!item.qty) && me.frm.doc.is_debit_note) { - item.amount = flt(item.rate, precision("amount", item)); - } else { - item.amount = flt(item.rate * item.qty, precision("amount", item)); - } - - item.net_amount = item.amount; + item.qty = item.qty === undefined ? (me.frm.doc.is_return ? -1 : 1) : item.qty; + item.net_amount = item.amount = flt(item.rate * item.qty, precision("amount", item)); item.item_tax_amount = 0.0; item.total_weight = flt(item.weight_per_unit * item.stock_qty); me.set_in_company_currency(item, ["price_list_rate", "rate", "amount", "net_rate", "net_amount"]); - }); + } } } From 0035ee2a74a8286330bb859b1ddb7dbb946fa5c9 Mon Sep 17 00:00:00 2001 From: Vishal Date: Thu, 15 Dec 2022 11:17:14 +0530 Subject: [PATCH 061/355] feat: Add operating cost based on bom quanity without creating job card (cherry picked from commit b559245f2af52eb4fdf7cccf4ba77934fe9ad687) --- erpnext/manufacturing/doctype/bom/bom.js | 28 ++++++++++++++------ erpnext/manufacturing/doctype/bom/bom.json | 24 ++++++++++++++++- erpnext/manufacturing/doctype/bom/bom.py | 30 +++++++++++++--------- 3 files changed, 61 insertions(+), 21 deletions(-) diff --git a/erpnext/manufacturing/doctype/bom/bom.js b/erpnext/manufacturing/doctype/bom/bom.js index 4dd8205a70c3..5ee98de37675 100644 --- a/erpnext/manufacturing/doctype/bom/bom.js +++ b/erpnext/manufacturing/doctype/bom/bom.js @@ -65,7 +65,13 @@ frappe.ui.form.on("BOM", { }); }, - onload_post_render(frm) { + validate: function(frm) { + if (frm.doc.fg_based_operating_cost && frm.doc.with_operations) { + frappe.throw({message: __("Please check either with operations or FG Based Operating Cost."), title: __("Mandatory")}); + } + }, + + onload_post_render: function(frm) { frm.get_field("items").grid.set_multiple_add("item_code", "qty"); }, @@ -536,14 +542,20 @@ erpnext.bom.calculate_op_cost = function(doc) { doc.operating_cost = 0.0; doc.base_operating_cost = 0.0; - for(var i=0;i Date: Thu, 15 Dec 2022 11:56:17 +0530 Subject: [PATCH 062/355] fix: minor changes added (cherry picked from commit ddc0127e05f920c48503ee8eecba194be920f861) --- erpnext/manufacturing/doctype/bom/bom.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py index 7048d131af03..8ab79e68be97 100644 --- a/erpnext/manufacturing/doctype/bom/bom.py +++ b/erpnext/manufacturing/doctype/bom/bom.py @@ -614,7 +614,7 @@ def calculate_op_cost(self, update_hour_rate=False): """Update workstation rate and calculates totals""" self.operating_cost = 0 self.base_operating_cost = 0 - if (self.get("with_operations")): + if self.get("with_operations"): for d in self.get("operations"): if d.workstation: self.update_rate_and_time(d, update_hour_rate) @@ -628,8 +628,10 @@ def calculate_op_cost(self, update_hour_rate=False): self.operating_cost += flt(operating_cost) self.base_operating_cost += flt(base_operating_cost) - elif(self.get("fg_based_operating_cost")): - total_operating_cost = flt(self.get("quantity")) * flt(self.get("operating_cost_per_bom_quantity")) + elif self.get("fg_based_operating_cost"): + total_operating_cost = flt(self.get("quantity")) * flt( + self.get("operating_cost_per_bom_quantity") + ) self.operating_cost = total_operating_cost self.base_operating_cost = flt(total_operating_cost * self.conversion_rate, 2) From 30af8c3acb7017c96a297e50099652b6eda18a1b Mon Sep 17 00:00:00 2001 From: Vishal Date: Mon, 19 Dec 2022 12:24:04 +0530 Subject: [PATCH 063/355] fix: test case added for FG_BASED OPERTING COST (cherry picked from commit f0c0a64984c00efee34568be1e1b3a6878388301) --- erpnext/manufacturing/doctype/bom/test_bom.py | 27 +++++++++++++++++++ .../doctype/bom/test_records.json | 26 ++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/erpnext/manufacturing/doctype/bom/test_bom.py b/erpnext/manufacturing/doctype/bom/test_bom.py index 16f5c793720a..d60feb2b3910 100644 --- a/erpnext/manufacturing/doctype/bom/test_bom.py +++ b/erpnext/manufacturing/doctype/bom/test_bom.py @@ -202,6 +202,33 @@ def test_bom_cost_multi_uom_based_on_valuation_rate(self): self.assertEqual(bom.items[0].rate, 20) + def test_bom_cost_with_fg_based_operating_cost(self): + bom = frappe.copy_doc(test_records[4]) + bom.insert() + + raw_material_cost = 0.0 + op_cost = 0.0 + + op_cost = bom.quantity * bom.operating_cost_per_bom_quantity + + for row in bom.items: + raw_material_cost += row.amount + + base_raw_material_cost = raw_material_cost * flt( + bom.conversion_rate, bom.precision("conversion_rate") + ) + base_op_cost = op_cost * flt(bom.conversion_rate, bom.precision("conversion_rate")) + + # test amounts in selected currency, almostEqual checks for 7 digits by default + self.assertAlmostEqual(bom.operating_cost, op_cost) + self.assertAlmostEqual(bom.raw_material_cost, raw_material_cost) + self.assertAlmostEqual(bom.total_cost, raw_material_cost + op_cost) + + # test amounts in selected currency + self.assertAlmostEqual(bom.base_operating_cost, base_op_cost) + self.assertAlmostEqual(bom.base_raw_material_cost, base_raw_material_cost) + self.assertAlmostEqual(bom.base_total_cost, base_raw_material_cost + base_op_cost) + def test_subcontractor_sourced_item(self): item_code = "_Test Subcontracted FG Item 1" set_backflush_based_on("Material Transferred for Subcontract") diff --git a/erpnext/manufacturing/doctype/bom/test_records.json b/erpnext/manufacturing/doctype/bom/test_records.json index 507d319b515a..e9cbdfe638a0 100644 --- a/erpnext/manufacturing/doctype/bom/test_records.json +++ b/erpnext/manufacturing/doctype/bom/test_records.json @@ -162,5 +162,31 @@ "item": "_Test Variant Item", "quantity": 1.0, "with_operations": 1 + }, + { + "items": [ + { + "amount": 5000.0, + "doctype": "BOM Item", + "item_code": "_Test Item", + "parentfield": "items", + "qty": 2.0, + "rate": 3000.0, + "uom": "_Test UOM", + "stock_uom": "_Test UOM", + "source_warehouse": "_Test Warehouse - _TC", + "include_item_in_manufacturing": 1 + } + ], + "docstatus": 1, + "doctype": "BOM", + "is_active": 1, + "is_default": 1, + "currency": "USD", + "item": "_Test Variant Item", + "quantity": 1.0, + "with_operations": 0, + "fg_based_operating_cost": 1, + "operating_cost_per_bom_quantity": 140 } ] From 9469488254262f41aac96125eefc486e8fb8896d Mon Sep 17 00:00:00 2001 From: Vishal Date: Tue, 10 Jan 2023 07:48:26 +0530 Subject: [PATCH 064/355] fix: bom.json updated (cherry picked from commit c51f9e0a9792fca2cd81725f353578338be77e53) --- erpnext/manufacturing/doctype/bom/bom.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/manufacturing/doctype/bom/bom.json b/erpnext/manufacturing/doctype/bom/bom.json index 2d936ea92e45..c2b331fcfd1f 100644 --- a/erpnext/manufacturing/doctype/bom/bom.json +++ b/erpnext/manufacturing/doctype/bom/bom.json @@ -578,8 +578,8 @@ { "fieldname": "scrap_items_section", "fieldtype": "Section Break", - "label": "Scrap Items", - "hide_border": 1 + "hide_border": 1, + "label": "Scrap Items" }, { "default": "0", @@ -605,7 +605,7 @@ "image_field": "image", "is_submittable": 1, "links": [], - "modified": "2023-01-03 18:42:27.732107", + "modified": "2023-01-10 07:47:08.652616", "modified_by": "Administrator", "module": "Manufacturing", "name": "BOM", From 19aa23765a84b9441e5925274fbaa679a84f82e6 Mon Sep 17 00:00:00 2001 From: Vishal Date: Tue, 10 Jan 2023 13:40:12 +0530 Subject: [PATCH 065/355] fix: minor change in bom.js added (cherry picked from commit a5cbdea8e45c695ed70b15ca7d7fa45e0ac898a4) --- erpnext/manufacturing/doctype/bom/bom.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/erpnext/manufacturing/doctype/bom/bom.js b/erpnext/manufacturing/doctype/bom/bom.js index 5ee98de37675..b16847faf307 100644 --- a/erpnext/manufacturing/doctype/bom/bom.js +++ b/erpnext/manufacturing/doctype/bom/bom.js @@ -543,15 +543,15 @@ erpnext.bom.calculate_op_cost = function(doc) { doc.base_operating_cost = 0.0; if(doc.with_operations) { - for(var i=0;i { + let operating_cost = flt(flt(item.hour_rate) * flt(item.time_in_mins) / 60, 2); + let base_operating_cost = flt(operating_cost * doc.conversion_rate, 2); + frappe.model.set_value('BOM Operation',item.name, "operating_cost", operating_cost); + frappe.model.set_value('BOM Operation',item.name, "base_operating_cost", base_operating_cost); doc.operating_cost += operating_cost; doc.base_operating_cost += base_operating_cost; - } + }); } else if(doc.fg_based_operating_cost) { let total_operating_cost = doc.quantity * flt(doc.operating_cost_per_bom_quantity); doc.operating_cost = total_operating_cost; From 8ee6db3b7bb4b61bbfaf385657a553e5163f23e7 Mon Sep 17 00:00:00 2001 From: Vishal Date: Wed, 11 Jan 2023 18:52:30 +0530 Subject: [PATCH 066/355] fix: hide with_operation on selection on fg_based and vice versa (cherry picked from commit 694fc3e20c584a4c63ff339b0223b358ffa4f79e) --- erpnext/manufacturing/doctype/bom/bom.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/erpnext/manufacturing/doctype/bom/bom.js b/erpnext/manufacturing/doctype/bom/bom.js index b16847faf307..4304193afaed 100644 --- a/erpnext/manufacturing/doctype/bom/bom.js +++ b/erpnext/manufacturing/doctype/bom/bom.js @@ -71,6 +71,14 @@ frappe.ui.form.on("BOM", { } }, + with_operations: function(frm) { + frm.set_df_property("fg_based_operating_cost", "hidden", frm.doc.with_operations ? 1 : 0); + }, + + fg_based_operating_cost: function(frm) { + frm.set_df_property("with_operations", "hidden", frm.doc.fg_based_operating_cost ? 1 : 0); + }, + onload_post_render: function(frm) { frm.get_field("items").grid.set_multiple_add("item_code", "qty"); }, @@ -538,16 +546,17 @@ erpnext.bom.update_cost = function(doc) { }; erpnext.bom.calculate_op_cost = function(doc) { - var op = doc.operations || []; doc.operating_cost = 0.0; doc.base_operating_cost = 0.0; if(doc.with_operations) { - op.forEach((item) => { + doc.operations.forEach((item) => { let operating_cost = flt(flt(item.hour_rate) * flt(item.time_in_mins) / 60, 2); let base_operating_cost = flt(operating_cost * doc.conversion_rate, 2); - frappe.model.set_value('BOM Operation',item.name, "operating_cost", operating_cost); - frappe.model.set_value('BOM Operation',item.name, "base_operating_cost", base_operating_cost); + frappe.model.set_value('BOM Operation',item.name, { + "operating_cost": operating_cost, + "base_operating_cost": base_operating_cost + }); doc.operating_cost += operating_cost; doc.base_operating_cost += base_operating_cost; From bcd1fca37bcae71c517c7fcc53314655df42f535 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 20 Jan 2023 22:38:56 +0530 Subject: [PATCH 067/355] fix: incorrect actual qty for the packed item (cherry picked from commit 02566a02a8a9768d7a48846a9ea49c32daf467a7) --- .../sales_invoice/test_sales_invoice.py | 40 +++++++++++++++++++ erpnext/controllers/selling_controller.py | 2 +- .../doctype/sales_order/test_sales_order.py | 36 +++++++++++++++++ .../delivery_note/test_delivery_note.py | 40 +++++++++++++++++++ 4 files changed, 117 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py index cb0d1a75a0c6..df3cfec24bcf 100644 --- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py @@ -1166,6 +1166,46 @@ def validate_pos_gl_entry(self, si, pos, cash_amount, validate_without_change_gl frappe.db.sql("delete from `tabPOS Profile`") + def test_bin_details_of_packed_item(self): + from erpnext.selling.doctype.product_bundle.test_product_bundle import make_product_bundle + from erpnext.stock.doctype.item.test_item import make_item + + # test Update Items with product bundle + if not frappe.db.exists("Item", "_Test Product Bundle Item New"): + bundle_item = make_item("_Test Product Bundle Item New", {"is_stock_item": 0}) + bundle_item.append( + "item_defaults", {"company": "_Test Company", "default_warehouse": "_Test Warehouse - _TC"} + ) + bundle_item.save(ignore_permissions=True) + + make_item("_Packed Item New 1", {"is_stock_item": 1}) + make_product_bundle("_Test Product Bundle Item New", ["_Packed Item New 1"], 2) + + si = create_sales_invoice( + item_code="_Test Product Bundle Item New", + update_stock=1, + warehouse="_Test Warehouse - _TC", + transaction_date=add_days(nowdate(), -1), + do_not_submit=1, + ) + + make_stock_entry(item="_Packed Item New 1", target="_Test Warehouse - _TC", qty=120, rate=100) + + bin_details = frappe.db.get_value( + "Bin", + {"item_code": "_Packed Item New 1", "warehouse": "_Test Warehouse - _TC"}, + ["actual_qty", "projected_qty", "ordered_qty"], + as_dict=1, + ) + + si.transaction_date = nowdate() + si.save() + + packed_item = si.packed_items[0] + self.assertEqual(flt(bin_details.actual_qty), flt(packed_item.actual_qty)) + self.assertEqual(flt(bin_details.projected_qty), flt(packed_item.projected_qty)) + self.assertEqual(flt(bin_details.ordered_qty), flt(packed_item.ordered_qty)) + def test_pos_si_without_payment(self): make_pos_profile() diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index dec3b750ebc2..fce34b002a44 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -25,7 +25,7 @@ def get_feed(self): def onload(self): super(SellingController, self).onload() if self.doctype in ("Sales Order", "Delivery Note", "Sales Invoice"): - for item in self.get("items"): + for item in self.get("items") + (self.get("packed_items") or []): item.update(get_bin_details(item.item_code, item.warehouse, include_child_warehouses=True)) def validate(self): diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py index e777f52f7a34..d4d7c58eb823 100644 --- a/erpnext/selling/doctype/sales_order/test_sales_order.py +++ b/erpnext/selling/doctype/sales_order/test_sales_order.py @@ -552,6 +552,42 @@ def test_update_child_qty_rate_with_workflow(self): workflow.is_active = 0 workflow.save() + def test_bin_details_of_packed_item(self): + # test Update Items with product bundle + if not frappe.db.exists("Item", "_Test Product Bundle Item New"): + bundle_item = make_item("_Test Product Bundle Item New", {"is_stock_item": 0}) + bundle_item.append( + "item_defaults", {"company": "_Test Company", "default_warehouse": "_Test Warehouse - _TC"} + ) + bundle_item.save(ignore_permissions=True) + + make_item("_Packed Item New 1", {"is_stock_item": 1}) + make_product_bundle("_Test Product Bundle Item New", ["_Packed Item New 1"], 2) + + so = make_sales_order( + item_code="_Test Product Bundle Item New", + warehouse="_Test Warehouse - _TC", + transaction_date=add_days(nowdate(), -1), + do_not_submit=1, + ) + + make_stock_entry(item="_Packed Item New 1", target="_Test Warehouse - _TC", qty=120, rate=100) + + bin_details = frappe.db.get_value( + "Bin", + {"item_code": "_Packed Item New 1", "warehouse": "_Test Warehouse - _TC"}, + ["actual_qty", "projected_qty", "ordered_qty"], + as_dict=1, + ) + + so.transaction_date = nowdate() + so.save() + + packed_item = so.packed_items[0] + self.assertEqual(flt(bin_details.actual_qty), flt(packed_item.actual_qty)) + self.assertEqual(flt(bin_details.projected_qty), flt(packed_item.projected_qty)) + self.assertEqual(flt(bin_details.ordered_qty), flt(packed_item.ordered_qty)) + def test_update_child_product_bundle(self): # test Update Items with product bundle if not frappe.db.exists("Item", "_Product Bundle Item"): diff --git a/erpnext/stock/doctype/delivery_note/test_delivery_note.py b/erpnext/stock/doctype/delivery_note/test_delivery_note.py index d747383d6a53..6847c78d7c80 100644 --- a/erpnext/stock/doctype/delivery_note/test_delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/test_delivery_note.py @@ -490,6 +490,46 @@ def test_return_entire_bundled_items(self): self.assertEqual(gle_warehouse_amount, 1400) + def test_bin_details_of_packed_item(self): + from erpnext.selling.doctype.product_bundle.test_product_bundle import make_product_bundle + from erpnext.stock.doctype.item.test_item import make_item + + # test Update Items with product bundle + if not frappe.db.exists("Item", "_Test Product Bundle Item New"): + bundle_item = make_item("_Test Product Bundle Item New", {"is_stock_item": 0}) + bundle_item.append( + "item_defaults", {"company": "_Test Company", "default_warehouse": "_Test Warehouse - _TC"} + ) + bundle_item.save(ignore_permissions=True) + + make_item("_Packed Item New 1", {"is_stock_item": 1}) + make_product_bundle("_Test Product Bundle Item New", ["_Packed Item New 1"], 2) + + si = create_delivery_note( + item_code="_Test Product Bundle Item New", + update_stock=1, + warehouse="_Test Warehouse - _TC", + transaction_date=add_days(nowdate(), -1), + do_not_submit=1, + ) + + make_stock_entry(item="_Packed Item New 1", target="_Test Warehouse - _TC", qty=120, rate=100) + + bin_details = frappe.db.get_value( + "Bin", + {"item_code": "_Packed Item New 1", "warehouse": "_Test Warehouse - _TC"}, + ["actual_qty", "projected_qty", "ordered_qty"], + as_dict=1, + ) + + si.transaction_date = nowdate() + si.save() + + packed_item = si.packed_items[0] + self.assertEqual(flt(bin_details.actual_qty), flt(packed_item.actual_qty)) + self.assertEqual(flt(bin_details.projected_qty), flt(packed_item.projected_qty)) + self.assertEqual(flt(bin_details.ordered_qty), flt(packed_item.ordered_qty)) + def test_return_for_serialized_items(self): se = make_serialized_item() serial_no = get_serial_nos(se.get("items")[0].serial_no)[0] From 89f1eefe2ba02f9d30a2f1675f4984091aa01d03 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 20 Jan 2023 23:40:15 +0530 Subject: [PATCH 068/355] fix: Short closed order, receipt, and delivery note status on cancellation (#33743) fix: Short closed order, receipt, and delivery note status on cancellation (#33743) --- erpnext/controllers/status_updater.py | 8 ++++---- erpnext/stock/doctype/delivery_note/test_delivery_note.py | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py index d4972973d0b4..dd2a67032fe4 100644 --- a/erpnext/controllers/status_updater.py +++ b/erpnext/controllers/status_updater.py @@ -58,7 +58,7 @@ def validate_status(status, options): "eval:(self.per_delivered == 100 or self.skip_delivery_note) and self.per_billed == 100 and self.docstatus == 1", ], ["Cancelled", "eval:self.docstatus==2"], - ["Closed", "eval:self.status=='Closed'"], + ["Closed", "eval:self.status=='Closed' and self.docstatus != 2"], ["On Hold", "eval:self.status=='On Hold'"], ], "Purchase Order": [ @@ -79,7 +79,7 @@ def validate_status(status, options): ["Delivered", "eval:self.status=='Delivered'"], ["Cancelled", "eval:self.docstatus==2"], ["On Hold", "eval:self.status=='On Hold'"], - ["Closed", "eval:self.status=='Closed'"], + ["Closed", "eval:self.status=='Closed' and self.docstatus != 2"], ], "Delivery Note": [ ["Draft", None], @@ -87,7 +87,7 @@ def validate_status(status, options): ["Return Issued", "eval:self.per_returned == 100 and self.docstatus == 1"], ["Completed", "eval:self.per_billed == 100 and self.docstatus == 1"], ["Cancelled", "eval:self.docstatus==2"], - ["Closed", "eval:self.status=='Closed'"], + ["Closed", "eval:self.status=='Closed' and self.docstatus != 2"], ], "Purchase Receipt": [ ["Draft", None], @@ -95,7 +95,7 @@ def validate_status(status, options): ["Return Issued", "eval:self.per_returned == 100 and self.docstatus == 1"], ["Completed", "eval:self.per_billed == 100 and self.docstatus == 1"], ["Cancelled", "eval:self.docstatus==2"], - ["Closed", "eval:self.status=='Closed'"], + ["Closed", "eval:self.status=='Closed' and self.docstatus != 2"], ], "Material Request": [ ["Draft", None], diff --git a/erpnext/stock/doctype/delivery_note/test_delivery_note.py b/erpnext/stock/doctype/delivery_note/test_delivery_note.py index d747383d6a53..b2ea0831758e 100644 --- a/erpnext/stock/doctype/delivery_note/test_delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/test_delivery_note.py @@ -650,6 +650,11 @@ def test_closed_delivery_note(self): update_delivery_note_status(dn.name, "Closed") self.assertEqual(frappe.db.get_value("Delivery Note", dn.name, "Status"), "Closed") + # Check cancelling closed delivery note + dn.load_from_db() + dn.cancel() + self.assertEqual(dn.status, "Cancelled") + def test_dn_billing_status_case1(self): # SO -> DN -> SI so = make_sales_order() From 5a4988463674528ae0e8c7ea4fa9656645a44d09 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 20 Jan 2023 23:41:55 +0530 Subject: [PATCH 069/355] fix(pricing rule): free item duplication (#33746) fix(pricing rule): free item duplication (#33746) --- erpnext/accounts/doctype/pricing_rule/utils.py | 18 ++++++++++++++---- erpnext/public/js/controllers/transaction.js | 1 + 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/doctype/pricing_rule/utils.py b/erpnext/accounts/doctype/pricing_rule/utils.py index 199766e9a8df..65d4595fcd54 100644 --- a/erpnext/accounts/doctype/pricing_rule/utils.py +++ b/erpnext/accounts/doctype/pricing_rule/utils.py @@ -681,11 +681,21 @@ def get_product_discount_rule(pricing_rule, item_details, args=None, doc=None): def apply_pricing_rule_for_free_items(doc, pricing_rule_args): if pricing_rule_args: - items = tuple((d.item_code, d.pricing_rules) for d in doc.items if d.is_free_item) + args = {(d["item_code"], d["pricing_rules"]): d for d in pricing_rule_args} - for args in pricing_rule_args: - if not items or (args.get("item_code"), args.get("pricing_rules")) not in items: - doc.append("items", args) + for item in doc.items: + if not item.is_free_item: + continue + + free_item_data = args.get((item.item_code, item.pricing_rules)) + if free_item_data: + free_item_data.pop("item_name") + free_item_data.pop("description") + item.update(free_item_data) + args.pop((item.item_code, item.pricing_rules)) + + for free_item in args.values(): + doc.append("items", free_item) def get_pricing_rule_items(pr_doc, other_items=False) -> list: diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index aa57bc2168e2..b1bf8b24047a 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -1473,6 +1473,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe "parenttype": d.parenttype, "parent": d.parent, "pricing_rules": d.pricing_rules, + "is_free_item": d.is_free_item, "warehouse": d.warehouse, "serial_no": d.serial_no, "batch_no": d.batch_no, From bfc33fb2f5419e9b96c3edb94727d7d3e1103fb8 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 21 Jan 2023 12:02:50 +0530 Subject: [PATCH 070/355] Removed an unnecessary check in code which always evaluates to true (backport #33710) (#33763) fix: removed an unnecessary check which always evaluates to true (cherry picked from commit 49aed7ff692d47242c1210343ea36af4fc966b6b) Co-authored-by: OpenRefactory, Inc <56681071+openrefactory@users.noreply.github.com> --- .../deferred_revenue_and_expense.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/erpnext/accounts/report/deferred_revenue_and_expense/deferred_revenue_and_expense.py b/erpnext/accounts/report/deferred_revenue_and_expense/deferred_revenue_and_expense.py index 6cc86c3efec4..3e11643776ea 100644 --- a/erpnext/accounts/report/deferred_revenue_and_expense/deferred_revenue_and_expense.py +++ b/erpnext/accounts/report/deferred_revenue_and_expense/deferred_revenue_and_expense.py @@ -378,15 +378,14 @@ def generate_report_data(self): ret += [{}] # add total row - if ret is not []: - if self.filters.type == "Revenue": - total_row = frappe._dict({"name": "Total Deferred Income"}) - elif self.filters.type == "Expense": - total_row = frappe._dict({"name": "Total Deferred Expense"}) + if self.filters.type == "Revenue": + total_row = frappe._dict({"name": "Total Deferred Income"}) + elif self.filters.type == "Expense": + total_row = frappe._dict({"name": "Total Deferred Expense"}) - for idx, period in enumerate(self.period_list, 0): - total_row[period.key] = self.period_total[idx].total - ret.append(total_row) + for idx, period in enumerate(self.period_list, 0): + total_row[period.key] = self.period_total[idx].total + ret.append(total_row) return ret From ed1aed22c079a2a0c38b35a9fa67aa2da0338b35 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 20 Jan 2023 23:27:49 +0530 Subject: [PATCH 071/355] fix: not able to change default BOM in the Subcontracting Order (cherry picked from commit 11b2994fe8f4711ea3159084f1da8175af90555f) --- .../subcontracting_order_item.json | 701 +++++++++--------- 1 file changed, 351 insertions(+), 350 deletions(-) diff --git a/erpnext/subcontracting/doctype/subcontracting_order_item/subcontracting_order_item.json b/erpnext/subcontracting/doctype/subcontracting_order_item/subcontracting_order_item.json index 3675a4ea08a3..d77e77440e04 100644 --- a/erpnext/subcontracting/doctype/subcontracting_order_item/subcontracting_order_item.json +++ b/erpnext/subcontracting/doctype/subcontracting_order_item/subcontracting_order_item.json @@ -1,352 +1,353 @@ { - "actions": [], - "autoname": "hash", - "creation": "2022-04-01 19:26:31.475015", - "doctype": "DocType", - "document_type": "Document", - "editable_grid": 1, - "engine": "InnoDB", - "field_order": [ - "item_code", - "item_name", - "bom", - "include_exploded_items", - "column_break_3", - "schedule_date", - "expected_delivery_date", - "description_section", - "description", - "column_break_8", - "image", - "image_view", - "quantity_and_rate_section", - "qty", - "received_qty", - "returned_qty", - "column_break_13", - "stock_uom", - "conversion_factor", - "section_break_16", - "rate", - "amount", - "column_break_19", - "rm_cost_per_qty", - "service_cost_per_qty", - "additional_cost_per_qty", - "warehouse_section", - "warehouse", - "accounting_details_section", - "expense_account", - "manufacture_section", - "manufacturer", - "manufacturer_part_no", - "accounting_dimensions_section", - "cost_center", - "dimension_col_break", - "project", - "section_break_34", - "page_break" - ], - "fields": [ - { - "bold": 1, - "columns": 2, - "fieldname": "item_code", - "fieldtype": "Link", - "in_list_view": 1, - "label": "Item Code", - "options": "Item", - "read_only": 1, - "reqd": 1, - "search_index": 1 - }, - { - "fetch_from": "item_code.item_name", - "fetch_if_empty": 1, - "fieldname": "item_name", - "fieldtype": "Data", - "in_global_search": 1, - "label": "Item Name", - "print_hide": 1, - "reqd": 1 - }, - { - "fieldname": "column_break_3", - "fieldtype": "Column Break" - }, - { - "bold": 1, - "columns": 2, - "fieldname": "schedule_date", - "fieldtype": "Date", - "label": "Required By", - "print_hide": 1, - "read_only": 1 - }, - { - "allow_on_submit": 1, - "bold": 1, - "fieldname": "expected_delivery_date", - "fieldtype": "Date", - "label": "Expected Delivery Date", - "search_index": 1 - }, - { - "collapsible": 1, - "fieldname": "description_section", - "fieldtype": "Section Break", - "label": "Description" - }, - { - "fetch_from": "item_code.description", - "fetch_if_empty": 1, - "fieldname": "description", - "fieldtype": "Text Editor", - "label": "Description", - "print_width": "300px", - "reqd": 1, - "width": "300px" - }, - { - "fieldname": "column_break_8", - "fieldtype": "Column Break" - }, - { - "fieldname": "image", - "fieldtype": "Attach", - "hidden": 1, - "label": "Image" - }, - { - "fieldname": "image_view", - "fieldtype": "Image", - "label": "Image View", - "options": "image", - "print_hide": 1 - }, - { - "fieldname": "quantity_and_rate_section", - "fieldtype": "Section Break", - "label": "Quantity and Rate" - }, - { - "bold": 1, - "columns": 1, - "default": "1", - "fieldname": "qty", - "fieldtype": "Float", - "in_list_view": 1, - "label": "Quantity", - "print_width": "60px", - "read_only": 1, - "reqd": 1, - "width": "60px" - }, - { - "fieldname": "column_break_13", - "fieldtype": "Column Break", - "print_hide": 1 - }, - { - "fieldname": "stock_uom", - "fieldtype": "Link", - "label": "Stock UOM", - "options": "UOM", - "print_width": "100px", - "read_only": 1, - "reqd": 1, - "width": "100px" - }, - { - "default": "1", - "fieldname": "conversion_factor", - "fieldtype": "Float", - "hidden": 1, - "label": "Conversion Factor", - "read_only": 1 - }, - { - "fieldname": "section_break_16", - "fieldtype": "Section Break" - }, - { - "bold": 1, - "columns": 2, - "fetch_from": "item_code.standard_rate", - "fetch_if_empty": 1, - "fieldname": "rate", - "fieldtype": "Currency", - "in_list_view": 1, - "label": "Rate", - "options": "currency", - "read_only": 1, - "reqd": 1 - }, - { - "fieldname": "column_break_19", - "fieldtype": "Column Break" - }, - { - "columns": 2, - "fieldname": "amount", - "fieldtype": "Currency", - "in_list_view": 1, - "label": "Amount", - "options": "currency", - "read_only": 1, - "reqd": 1 - }, - { - "fieldname": "warehouse_section", - "fieldtype": "Section Break", - "label": "Warehouse Details" - }, - { - "fieldname": "warehouse", - "fieldtype": "Link", - "label": "Warehouse", - "options": "Warehouse", - "print_hide": 1, - "reqd": 1 - }, - { - "collapsible": 1, - "fieldname": "accounting_details_section", - "fieldtype": "Section Break", - "label": "Accounting Details" - }, - { - "fieldname": "expense_account", - "fieldtype": "Link", - "label": "Expense Account", - "options": "Account", - "print_hide": 1 - }, - { - "collapsible": 1, - "fieldname": "manufacture_section", - "fieldtype": "Section Break", - "label": "Manufacture" - }, - { - "fieldname": "manufacturer", - "fieldtype": "Link", - "label": "Manufacturer", - "options": "Manufacturer" - }, - { - "fieldname": "manufacturer_part_no", - "fieldtype": "Data", - "label": "Manufacturer Part Number" - }, - { - "depends_on": "item_code", - "fetch_from": "item_code.default_bom", - "fieldname": "bom", - "fieldtype": "Link", - "in_list_view": 1, - "label": "BOM", - "options": "BOM", - "print_hide": 1, - "reqd": 1 - }, - { - "default": "0", - "fieldname": "include_exploded_items", - "fieldtype": "Check", - "label": "Include Exploded Items", - "print_hide": 1 - }, - { - "fieldname": "service_cost_per_qty", - "fieldtype": "Currency", - "label": "Service Cost Per Qty", - "read_only": 1, - "reqd": 1 - }, - { - "default": "0", - "fieldname": "additional_cost_per_qty", - "fieldtype": "Currency", - "label": "Additional Cost Per Qty", - "read_only": 1 - }, - { - "fieldname": "rm_cost_per_qty", - "fieldtype": "Currency", - "label": "Raw Material Cost Per Qty", - "no_copy": 1, - "read_only": 1 - }, - { - "allow_on_submit": 1, - "default": "0", - "fieldname": "page_break", - "fieldtype": "Check", - "label": "Page Break", - "no_copy": 1, - "print_hide": 1 - }, - { - "fieldname": "section_break_34", - "fieldtype": "Section Break" - }, - { - "depends_on": "received_qty", - "fieldname": "received_qty", - "fieldtype": "Float", - "label": "Received Qty", - "no_copy": 1, - "print_hide": 1, - "read_only": 1 - }, - { - "depends_on": "returned_qty", - "fieldname": "returned_qty", - "fieldtype": "Float", - "label": "Returned Qty", - "no_copy": 1, - "print_hide": 1, - "read_only": 1 - }, - { - "collapsible": 1, - "fieldname": "accounting_dimensions_section", - "fieldtype": "Section Break", - "label": "Accounting Dimensions" - }, - { - "fieldname": "cost_center", - "fieldtype": "Link", - "label": "Cost Center", - "options": "Cost Center" - }, - { - "fieldname": "dimension_col_break", - "fieldtype": "Column Break" - }, - { - "fieldname": "project", - "fieldtype": "Link", - "label": "Project", - "options": "Project" - } - ], - "idx": 1, - "index_web_pages_for_search": 1, - "istable": 1, - "links": [], - "modified": "2022-08-15 14:25:45.177703", - "modified_by": "Administrator", - "module": "Subcontracting", - "name": "Subcontracting Order Item", - "naming_rule": "Random", - "owner": "Administrator", - "permissions": [], - "quick_entry": 1, - "search_fields": "item_name", - "sort_field": "modified", - "sort_order": "DESC", - "states": [], - "track_changes": 1 + "actions": [], + "autoname": "hash", + "creation": "2022-04-01 19:26:31.475015", + "doctype": "DocType", + "document_type": "Document", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "item_code", + "item_name", + "bom", + "include_exploded_items", + "column_break_3", + "schedule_date", + "expected_delivery_date", + "description_section", + "description", + "column_break_8", + "image", + "image_view", + "quantity_and_rate_section", + "qty", + "received_qty", + "returned_qty", + "column_break_13", + "stock_uom", + "conversion_factor", + "section_break_16", + "rate", + "amount", + "column_break_19", + "rm_cost_per_qty", + "service_cost_per_qty", + "additional_cost_per_qty", + "warehouse_section", + "warehouse", + "accounting_details_section", + "expense_account", + "manufacture_section", + "manufacturer", + "manufacturer_part_no", + "accounting_dimensions_section", + "cost_center", + "dimension_col_break", + "project", + "section_break_34", + "page_break" + ], + "fields": [ + { + "bold": 1, + "columns": 2, + "fieldname": "item_code", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Item Code", + "options": "Item", + "read_only": 1, + "reqd": 1, + "search_index": 1 + }, + { + "fetch_from": "item_code.item_name", + "fetch_if_empty": 1, + "fieldname": "item_name", + "fieldtype": "Data", + "in_global_search": 1, + "label": "Item Name", + "print_hide": 1, + "reqd": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "bold": 1, + "columns": 2, + "fieldname": "schedule_date", + "fieldtype": "Date", + "label": "Required By", + "print_hide": 1, + "read_only": 1 + }, + { + "allow_on_submit": 1, + "bold": 1, + "fieldname": "expected_delivery_date", + "fieldtype": "Date", + "label": "Expected Delivery Date", + "search_index": 1 + }, + { + "collapsible": 1, + "fieldname": "description_section", + "fieldtype": "Section Break", + "label": "Description" + }, + { + "fetch_from": "item_code.description", + "fetch_if_empty": 1, + "fieldname": "description", + "fieldtype": "Text Editor", + "label": "Description", + "print_width": "300px", + "reqd": 1, + "width": "300px" + }, + { + "fieldname": "column_break_8", + "fieldtype": "Column Break" + }, + { + "fieldname": "image", + "fieldtype": "Attach", + "hidden": 1, + "label": "Image" + }, + { + "fieldname": "image_view", + "fieldtype": "Image", + "label": "Image View", + "options": "image", + "print_hide": 1 + }, + { + "fieldname": "quantity_and_rate_section", + "fieldtype": "Section Break", + "label": "Quantity and Rate" + }, + { + "bold": 1, + "columns": 1, + "default": "1", + "fieldname": "qty", + "fieldtype": "Float", + "in_list_view": 1, + "label": "Quantity", + "print_width": "60px", + "read_only": 1, + "reqd": 1, + "width": "60px" + }, + { + "fieldname": "column_break_13", + "fieldtype": "Column Break", + "print_hide": 1 + }, + { + "fieldname": "stock_uom", + "fieldtype": "Link", + "label": "Stock UOM", + "options": "UOM", + "print_width": "100px", + "read_only": 1, + "reqd": 1, + "width": "100px" + }, + { + "default": "1", + "fieldname": "conversion_factor", + "fieldtype": "Float", + "hidden": 1, + "label": "Conversion Factor", + "read_only": 1 + }, + { + "fieldname": "section_break_16", + "fieldtype": "Section Break" + }, + { + "bold": 1, + "columns": 2, + "fetch_from": "item_code.standard_rate", + "fetch_if_empty": 1, + "fieldname": "rate", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Rate", + "options": "currency", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "column_break_19", + "fieldtype": "Column Break" + }, + { + "columns": 2, + "fieldname": "amount", + "fieldtype": "Currency", + "in_list_view": 1, + "label": "Amount", + "options": "currency", + "read_only": 1, + "reqd": 1 + }, + { + "fieldname": "warehouse_section", + "fieldtype": "Section Break", + "label": "Warehouse Details" + }, + { + "fieldname": "warehouse", + "fieldtype": "Link", + "label": "Warehouse", + "options": "Warehouse", + "print_hide": 1, + "reqd": 1 + }, + { + "collapsible": 1, + "fieldname": "accounting_details_section", + "fieldtype": "Section Break", + "label": "Accounting Details" + }, + { + "fieldname": "expense_account", + "fieldtype": "Link", + "label": "Expense Account", + "options": "Account", + "print_hide": 1 + }, + { + "collapsible": 1, + "fieldname": "manufacture_section", + "fieldtype": "Section Break", + "label": "Manufacture" + }, + { + "fieldname": "manufacturer", + "fieldtype": "Link", + "label": "Manufacturer", + "options": "Manufacturer" + }, + { + "fieldname": "manufacturer_part_no", + "fieldtype": "Data", + "label": "Manufacturer Part Number" + }, + { + "depends_on": "item_code", + "fetch_from": "item_code.default_bom", + "fetch_if_empty": 1, + "fieldname": "bom", + "fieldtype": "Link", + "in_list_view": 1, + "label": "BOM", + "options": "BOM", + "print_hide": 1, + "reqd": 1 + }, + { + "default": "0", + "fieldname": "include_exploded_items", + "fieldtype": "Check", + "label": "Include Exploded Items", + "print_hide": 1 + }, + { + "fieldname": "service_cost_per_qty", + "fieldtype": "Currency", + "label": "Service Cost Per Qty", + "read_only": 1, + "reqd": 1 + }, + { + "default": "0", + "fieldname": "additional_cost_per_qty", + "fieldtype": "Currency", + "label": "Additional Cost Per Qty", + "read_only": 1 + }, + { + "fieldname": "rm_cost_per_qty", + "fieldtype": "Currency", + "label": "Raw Material Cost Per Qty", + "no_copy": 1, + "read_only": 1 + }, + { + "allow_on_submit": 1, + "default": "0", + "fieldname": "page_break", + "fieldtype": "Check", + "label": "Page Break", + "no_copy": 1, + "print_hide": 1 + }, + { + "fieldname": "section_break_34", + "fieldtype": "Section Break" + }, + { + "depends_on": "received_qty", + "fieldname": "received_qty", + "fieldtype": "Float", + "label": "Received Qty", + "no_copy": 1, + "print_hide": 1, + "read_only": 1 + }, + { + "depends_on": "returned_qty", + "fieldname": "returned_qty", + "fieldtype": "Float", + "label": "Returned Qty", + "no_copy": 1, + "print_hide": 1, + "read_only": 1 + }, + { + "collapsible": 1, + "fieldname": "accounting_dimensions_section", + "fieldtype": "Section Break", + "label": "Accounting Dimensions" + }, + { + "fieldname": "cost_center", + "fieldtype": "Link", + "label": "Cost Center", + "options": "Cost Center" + }, + { + "fieldname": "dimension_col_break", + "fieldtype": "Column Break" + }, + { + "fieldname": "project", + "fieldtype": "Link", + "label": "Project", + "options": "Project" + } + ], + "idx": 1, + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2023-01-20 23:25:45.363281", + "modified_by": "Administrator", + "module": "Subcontracting", + "name": "Subcontracting Order Item", + "naming_rule": "Random", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "search_fields": "item_name", + "sort_field": "modified", + "sort_order": "DESC", + "states": [], + "track_changes": 1 } \ No newline at end of file From 8af9a2fad1a1f5153929c03f78bf908c76802cb6 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 21 Jan 2023 15:45:01 +0530 Subject: [PATCH 072/355] fix(minor): Label updates in Statement of Accounts (#33639) fix(minor): Label updates in Statement of Accounts --- .../process_statement_of_accounts.html | 1 - erpnext/accounts/report/general_ledger/general_ledger.html | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html index 0da44a464e76..3920d4cf0961 100644 --- a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html +++ b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html @@ -49,7 +49,6 @@

{% endif %} - {{ _("Against") }}: {{ row.against }}
{{ _("Remarks") }}: {{ row.remarks }} {% if row.bill_no %}
{{ _("Supplier Invoice No") }}: {{ row.bill_no }} diff --git a/erpnext/accounts/report/general_ledger/general_ledger.html b/erpnext/accounts/report/general_ledger/general_ledger.html index c04f518d7e6c..475be92add57 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.html +++ b/erpnext/accounts/report/general_ledger/general_ledger.html @@ -25,8 +25,8 @@
{%= __("Date") %} - {%= __("Ref") %} - {%= __("Party") %} + {%= __("Reference") %} + {%= __("Remarks") %} {%= __("Debit") %} {%= __("Credit") %} {%= __("Balance (Dr - Cr)") %} @@ -45,7 +45,6 @@

{% } %} - {{ __("Against") }}: {%= data[i].against %}
{%= __("Remarks") %}: {%= data[i].remarks %} {% if(data[i].bill_no) { %}
{%= __("Supplier Invoice No") %}: {%= data[i].bill_no %} From 96f9b34b19f324b8d083666e9b6e4973953d7932 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Sat, 21 Jan 2023 18:40:57 +0530 Subject: [PATCH 073/355] fix: incorrect row order and accumulated_depreciation when schedule with multiple FBs is scrapped --- erpnext/assets/doctype/asset/asset.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 969689727ab6..b25afdef01ff 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -237,6 +237,9 @@ def make_depreciation_schedule(self, date_of_disposal): for finance_book in self.get("finance_books"): self._make_depreciation_schedule(finance_book, start, date_of_disposal) + if len(self.get("finance_books")) > 1 and any(start): + self.sort_depreciation_schedule() + def _make_depreciation_schedule(self, finance_book, start, date_of_disposal): self.validate_asset_finance_books(finance_book) @@ -365,6 +368,14 @@ def _add_depreciation_row( }, ) + def sort_depreciation_schedule(self): + self.schedules = sorted( + self.schedules, key=lambda s: (int(s.finance_book_id), getdate(s.schedule_date)) + ) + + for idx, s in enumerate(self.schedules, 1): + s.idx = idx + def _get_value_after_depreciation(self, finance_book): # value_after_depreciation - current Asset value if self.docstatus == 1 and finance_book.value_after_depreciation: From 9e2329dcfa0aa527b8a0744596b34b32a8419929 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Sat, 21 Jan 2023 19:54:14 +0530 Subject: [PATCH 074/355] chore: rename date_of_sale to date_of_disposal --- erpnext/assets/doctype/asset/asset.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index b25afdef01ff..6aaac6cea448 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -553,7 +553,7 @@ def has_only_one_finance_book(self): return True def set_accumulated_depreciation( - self, date_of_sale=None, date_of_return=None, ignore_booked_entry=False + self, date_of_disposal=None, date_of_return=None, ignore_booked_entry=False ): straight_line_idx = [ d.idx for d in self.get("schedules") if d.depreciation_method == "Straight Line" @@ -576,7 +576,7 @@ def set_accumulated_depreciation( if ( straight_line_idx and i == max(straight_line_idx) - 1 - and not date_of_sale + and not date_of_disposal and not date_of_return ): book = self.get("finance_books")[cint(d.finance_book_id) - 1] From 219aa81eb61851ba9f62745b8e4168ab1efb1e94 Mon Sep 17 00:00:00 2001 From: barredterra <14891507+barredterra@users.noreply.github.com> Date: Sat, 21 Jan 2023 17:29:43 +0100 Subject: [PATCH 075/355] fix: missing constant definition (cherry picked from commit 547d37b1db03a625bb2d4577f895c0f731b679d8) --- erpnext/public/js/controllers/taxes_and_totals.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index 271b563c732a..2ce0c7eb00dd 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -122,7 +122,7 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { calculate_item_values() { var me = this; if (!this.discount_amount_applied) { - for (item of this.frm.doc.items || []) { + for (const item of this.frm.doc.items || []) { frappe.model.round_floats_in(item); item.net_rate = item.rate; item.qty = item.qty === undefined ? (me.frm.doc.is_return ? -1 : 1) : item.qty; From 4be8375e36d7a1ccd1337d3be84c30afe346a127 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 22 Jan 2023 17:57:47 +0530 Subject: [PATCH 076/355] fix: Better budget exceeding validation messages (#33713) fix: Better budget exceeding validation messages (#33713) --- erpnext/accounts/doctype/budget/budget.py | 41 +++++++++++++---------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/erpnext/accounts/doctype/budget/budget.py b/erpnext/accounts/doctype/budget/budget.py index 637ac7a04cec..ef2a7621f841 100644 --- a/erpnext/accounts/doctype/budget/budget.py +++ b/erpnext/accounts/doctype/budget/budget.py @@ -184,6 +184,11 @@ def validate_budget_records(args, budget_records, expense_amount): amount = expense_amount or get_amount(args, budget) yearly_action, monthly_action = get_actions(args, budget) + if yearly_action in ("Stop", "Warn"): + compare_expense_with_budget( + args, flt(budget.budget_amount), _("Annual"), yearly_action, budget.budget_against, amount + ) + if monthly_action in ["Stop", "Warn"]: budget_amount = get_accumulated_monthly_budget( budget.monthly_distribution, args.posting_date, args.fiscal_year, budget.budget_amount @@ -195,28 +200,28 @@ def validate_budget_records(args, budget_records, expense_amount): args, budget_amount, _("Accumulated Monthly"), monthly_action, budget.budget_against, amount ) - if ( - yearly_action in ("Stop", "Warn") - and monthly_action != "Stop" - and yearly_action != monthly_action - ): - compare_expense_with_budget( - args, flt(budget.budget_amount), _("Annual"), yearly_action, budget.budget_against, amount - ) - def compare_expense_with_budget(args, budget_amount, action_for, action, budget_against, amount=0): - actual_expense = amount or get_actual_expense(args) - if actual_expense > budget_amount: - diff = actual_expense - budget_amount + actual_expense = get_actual_expense(args) + total_expense = actual_expense + amount + + if total_expense > budget_amount: + if actual_expense > budget_amount: + error_tense = _("is already") + diff = actual_expense - budget_amount + else: + error_tense = _("will be") + diff = total_expense - budget_amount + currency = frappe.get_cached_value("Company", args.company, "default_currency") - msg = _("{0} Budget for Account {1} against {2} {3} is {4}. It will exceed by {5}").format( + msg = _("{0} Budget for Account {1} against {2} {3} is {4}. It {5} exceed by {6}").format( _(action_for), frappe.bold(args.account), - args.budget_against_field, + frappe.unscrub(args.budget_against_field), frappe.bold(budget_against), frappe.bold(fmt_money(budget_amount, currency=currency)), + error_tense, frappe.bold(fmt_money(diff, currency=currency)), ) @@ -227,9 +232,9 @@ def compare_expense_with_budget(args, budget_amount, action_for, action, budget_ action = "Warn" if action == "Stop": - frappe.throw(msg, BudgetError) + frappe.throw(msg, BudgetError, title=_("Budget Exceeded")) else: - frappe.msgprint(msg, indicator="orange") + frappe.msgprint(msg, indicator="orange", title=_("Budget Exceeded")) def get_actions(args, budget): @@ -351,7 +356,9 @@ def get_actual_expense(args): """ select sum(gle.debit) - sum(gle.credit) from `tabGL Entry` gle - where gle.account=%(account)s + where + is_cancelled = 0 + and gle.account=%(account)s {condition1} and gle.fiscal_year=%(fiscal_year)s and gle.company=%(company)s From ff731ea70a0d8232f0d3f64f4349b36f0f85b780 Mon Sep 17 00:00:00 2001 From: Sagar Sharma Date: Sun, 22 Jan 2023 18:04:13 +0530 Subject: [PATCH 077/355] fix: incorrect `rate` and `amount` in MR Item (#33547) * fix: incorrect `rate` and `amount` in MR Item (cherry picked from commit 7a8e89e2fe217a0acdac5d4bd9eaa6bf2617fe84) --- .../doctype/sales_order/sales_order.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index accf5f22a6fc..ca6a51a6f36f 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -26,7 +26,7 @@ from erpnext.selling.doctype.customer.customer import check_credit_limit from erpnext.setup.doctype.item_group.item_group import get_item_group_defaults from erpnext.stock.doctype.item.item import get_item_defaults -from erpnext.stock.get_item_details import get_default_bom +from erpnext.stock.get_item_details import get_default_bom, get_price_list_rate from erpnext.stock.stock_balance import get_reserved_qty, update_bin_qty form_grid_templates = {"items": "templates/form_grid/item_grid.html"} @@ -590,6 +590,23 @@ def update_item(source, target, source_parent): target.qty = qty - requested_item_qty.get(source.name, 0) target.stock_qty = flt(target.qty) * flt(target.conversion_factor) + args = target.as_dict().copy() + args.update( + { + "company": source_parent.get("company"), + "price_list": frappe.db.get_single_value("Buying Settings", "buying_price_list"), + "currency": source_parent.get("currency"), + "conversion_rate": source_parent.get("conversion_rate"), + } + ) + + target.rate = flt( + get_price_list_rate(args=args, item_doc=frappe.get_cached_doc("Item", target.item_code)).get( + "price_list_rate" + ) + ) + target.amount = target.qty * target.rate + doc = get_mapped_doc( "Sales Order", source_name, From 31fd6f300f48f8463a244213b3cb34c269698a18 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 23 Jan 2023 12:01:57 +0530 Subject: [PATCH 078/355] feat: get items from Transit Stock Entry (cherry picked from commit 62141b0b63a0d2a3f542c24ab0552410e2898e4b) --- .../stock/doctype/stock_entry/stock_entry.js | 24 ++++++++++ .../doctype/stock_entry/stock_entry_utils.py | 1 + .../doctype/stock_entry/test_stock_entry.py | 48 +++++++++++++++++++ 3 files changed, 73 insertions(+) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js index d4b4efa4cdd2..a82c709b60fd 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.js +++ b/erpnext/stock/doctype/stock_entry/stock_entry.js @@ -169,6 +169,8 @@ frappe.ui.form.on('Stock Entry', { }, refresh: function(frm) { + frm.trigger("get_items_from_transit_entry"); + if(!frm.doc.docstatus) { frm.trigger('validate_purpose_consumption'); frm.add_custom_button(__('Material Request'), function() { @@ -337,6 +339,28 @@ frappe.ui.form.on('Stock Entry', { } }, + get_items_from_transit_entry: function(frm) { + if (frm.doc.docstatus===0) { + frm.add_custom_button(__('Transit Entry'), function() { + erpnext.utils.map_current_doc({ + method: "erpnext.stock.doctype.stock_entry.stock_entry.make_stock_in_entry", + source_doctype: "Stock Entry", + target: frm, + date_field: "posting_date", + setters: { + stock_entry_type: "Material Transfer", + purpose: "Material Transfer", + }, + get_query_filters: { + docstatus: 1, + purpose: "Material Transfer", + add_to_transit: 1, + } + }) + }, __("Get Items From")); + } + }, + before_save: function(frm) { frm.doc.items.forEach((item) => { item.uom = item.uom || item.stock_uom; diff --git a/erpnext/stock/doctype/stock_entry/stock_entry_utils.py b/erpnext/stock/doctype/stock_entry/stock_entry_utils.py index 41a3b8916ded..0f9001392df0 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry_utils.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry_utils.py @@ -117,6 +117,7 @@ def process_serial_numbers(serial_nos_list): args.item = "_Test Item" s.company = args.company or erpnext.get_default_company() + s.add_to_transit = args.add_to_transit or 0 s.purchase_receipt_no = args.purchase_receipt_no s.delivery_note_no = args.delivery_note_no s.sales_invoice_no = args.sales_invoice_no diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py index b574b718fe1c..38bf0a5f9e58 100644 --- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py @@ -17,6 +17,7 @@ from erpnext.stock.doctype.serial_no.serial_no import * # noqa from erpnext.stock.doctype.stock_entry.stock_entry import ( FinishedGoodError, + make_stock_in_entry, move_sample_to_retention_warehouse, ) from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry @@ -160,6 +161,53 @@ def _test_auto_material_request( self.assertTrue(item_code in items) + def test_add_to_transit_entry(self): + from erpnext.stock.doctype.warehouse.test_warehouse import create_warehouse + + item_code = "_Test Transit Item" + company = "_Test Company" + + create_warehouse("Test From Warehouse") + create_warehouse("Test Transit Warehouse") + create_warehouse("Test To Warehouse") + + create_item( + item_code=item_code, + is_stock_item=1, + is_purchase_item=1, + company=company, + ) + + # create inward stock entry + make_stock_entry( + item_code=item_code, + target="Test From Warehouse - _TC", + qty=10, + basic_rate=100, + expense_account="Stock Adjustment - _TC", + cost_center="Main - _TC", + ) + + transit_entry = make_stock_entry( + item_code=item_code, + source="Test From Warehouse - _TC", + target="Test Transit Warehouse - _TC", + add_to_transit=1, + stock_entry_type="Material Transfer", + purpose="Material Transfer", + qty=10, + basic_rate=100, + expense_account="Stock Adjustment - _TC", + cost_center="Main - _TC", + ) + + end_transit_entry = make_stock_in_entry(transit_entry.name) + self.assertEqual(transit_entry.name, end_transit_entry.outgoing_stock_entry) + self.assertEqual(transit_entry.name, end_transit_entry.items[0].against_stock_entry) + self.assertEqual(transit_entry.items[0].name, end_transit_entry.items[0].ste_detail) + + # create add to transit + def test_material_receipt_gl_entry(self): company = frappe.db.get_value("Warehouse", "Stores - TCP1", "company") From f9a43e5470f153bdf94fa827b688462e8f1cc3f6 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 23 Jan 2023 17:51:51 +0530 Subject: [PATCH 079/355] fix: TDS deduction in payment entry (#33747) fix: TDS deduction in payment entry (#33747) --- .../tax_withholding_category.py | 30 +- .../test_tax_withholding_category.py | 298 ++++++++++-------- 2 files changed, 201 insertions(+), 127 deletions(-) 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 1bce43fd310a..2c829b258b41 100644 --- a/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py +++ b/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py @@ -410,12 +410,26 @@ def get_tds_amount(ldc, parties, inv, tax_details, tax_deducted, vouchers): tds_amount = 0 invoice_filters = {"name": ("in", vouchers), "docstatus": 1, "apply_tds": 1} + ## for TDS to be deducted on advances + payment_entry_filters = { + "party_type": "Supplier", + "party": ("in", parties), + "docstatus": 1, + "apply_tax_withholding_amount": 1, + "unallocated_amount": (">", 0), + "posting_date": ["between", (tax_details.from_date, tax_details.to_date)], + "tax_withholding_category": tax_details.get("tax_withholding_category"), + } + field = "sum(tax_withholding_net_total)" if cint(tax_details.consider_party_ledger_amount): invoice_filters.pop("apply_tds", None) field = "sum(grand_total)" + payment_entry_filters.pop("apply_tax_withholding_amount", None) + payment_entry_filters.pop("tax_withholding_category", None) + supp_credit_amt = frappe.db.get_value("Purchase Invoice", invoice_filters, field) or 0.0 supp_jv_credit_amt = ( @@ -427,14 +441,28 @@ def get_tds_amount(ldc, parties, inv, tax_details, tax_deducted, vouchers): "party": ("in", parties), "reference_type": ("!=", "Purchase Invoice"), }, - "sum(credit_in_account_currency)", + "sum(credit_in_account_currency - debit_in_account_currency)", ) or 0.0 ) + # Get Amount via payment entry + payment_entry_amounts = frappe.db.get_all( + "Payment Entry", + filters=payment_entry_filters, + fields=["sum(unallocated_amount) as amount", "payment_type"], + group_by="payment_type", + ) + supp_credit_amt += supp_jv_credit_amt supp_credit_amt += inv.tax_withholding_net_total + for type in payment_entry_amounts: + if type.payment_type == "Pay": + supp_credit_amt += type.amount + else: + supp_credit_amt -= type.amount + threshold = tax_details.get("threshold", 0) cumulative_threshold = tax_details.get("cumulative_threshold", 0) diff --git a/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py b/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py index 23caac047adf..1e86cf5d2efb 100644 --- a/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py +++ b/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py @@ -16,7 +16,7 @@ class TestTaxWithholdingCategory(unittest.TestCase): def setUpClass(self): # create relevant supplier, etc create_records() - create_tax_with_holding_category() + create_tax_withholding_category_records() def tearDown(self): cancel_invoices() @@ -38,7 +38,7 @@ def test_cumulative_threshold_tds(self): pi = create_purchase_invoice(supplier="Test TDS Supplier") pi.submit() - # assert equal tax deduction on total invoice amount uptil now + # assert equal tax deduction on total invoice amount until now self.assertEqual(pi.taxes_and_charges_deducted, 3000) self.assertEqual(pi.grand_total, 7000) invoices.append(pi) @@ -47,7 +47,7 @@ def test_cumulative_threshold_tds(self): pi = create_purchase_invoice(supplier="Test TDS Supplier", rate=5000) pi.submit() - # assert equal tax deduction on total invoice amount uptil now + # assert equal tax deduction on total invoice amount until now self.assertEqual(pi.taxes_and_charges_deducted, 500) invoices.append(pi) @@ -130,7 +130,7 @@ def test_cumulative_threshold_tcs(self): invoices.append(si) # create another invoice whose total when added to previously created invoice, - # surpasses cumulative threshhold + # surpasses cumulative threshold si = create_sales_invoice(customer="Test TCS Customer", rate=12000) si.submit() @@ -329,6 +329,38 @@ def test_tax_withholding_category_voucher_display(self): for d in reversed(invoices): d.cancel() + def test_tax_withholding_via_payment_entry_for_advances(self): + frappe.db.set_value( + "Supplier", "Test TDS Supplier7", "tax_withholding_category", "Advance TDS Category" + ) + + # create payment entry + pe1 = create_payment_entry( + payment_type="Pay", party_type="Supplier", party="Test TDS Supplier7", paid_amount=4000 + ) + pe1.submit() + + self.assertFalse(pe1.get("taxes")) + + pe2 = create_payment_entry( + payment_type="Pay", party_type="Supplier", party="Test TDS Supplier7", paid_amount=4000 + ) + pe2.submit() + + self.assertFalse(pe2.get("taxes")) + + pe3 = create_payment_entry( + payment_type="Pay", party_type="Supplier", party="Test TDS Supplier7", paid_amount=4000 + ) + pe3.apply_tax_withholding_amount = 1 + pe3.save() + pe3.submit() + + self.assertEquals(pe3.get("taxes")[0].tax_amount, 1200) + pe1.cancel() + pe2.cancel() + pe3.cancel() + def cancel_invoices(): purchase_invoices = frappe.get_all( @@ -450,6 +482,32 @@ def create_sales_invoice(**args): return si +def create_payment_entry(**args): + # return payment entry doc object + args = frappe._dict(args) + pe = frappe.get_doc( + { + "doctype": "Payment Entry", + "posting_date": today(), + "payment_type": args.payment_type, + "party_type": args.party_type, + "party": args.party, + "company": "_Test Company", + "paid_from": "Cash - _TC", + "paid_to": "Creditors - _TC", + "paid_amount": args.paid_amount or 10000, + "received_amount": args.paid_amount or 10000, + "reference_no": args.reference_no or "12345", + "reference_date": today(), + "paid_from_account_currency": "INR", + "paid_to_account_currency": "INR", + } + ) + + pe.save() + return pe + + def create_records(): # create a new suppliers for name in [ @@ -460,6 +518,7 @@ def create_records(): "Test TDS Supplier4", "Test TDS Supplier5", "Test TDS Supplier6", + "Test TDS Supplier7", ]: if frappe.db.exists("Supplier", name): continue @@ -530,142 +589,129 @@ def create_records(): ).insert() -def create_tax_with_holding_category(): +def create_tax_withholding_category_records(): fiscal_year = get_fiscal_year(today(), company="_Test Company") + from_date = fiscal_year[1] + to_date = fiscal_year[2] + # Cumulative threshold - if not frappe.db.exists("Tax Withholding Category", "Cumulative Threshold TDS"): - frappe.get_doc( - { - "doctype": "Tax Withholding Category", - "name": "Cumulative Threshold TDS", - "category_name": "10% TDS", - "rates": [ - { - "from_date": fiscal_year[1], - "to_date": fiscal_year[2], - "tax_withholding_rate": 10, - "single_threshold": 0, - "cumulative_threshold": 30000.00, - } - ], - "accounts": [{"company": "_Test Company", "account": "TDS - _TC"}], - } - ).insert() + create_tax_withholding_category( + category_name="Cumulative Threshold TDS", + rate=10, + from_date=from_date, + to_date=to_date, + account="TDS - _TC", + single_threshold=0, + cumulative_threshold=30000.00, + ) - if not frappe.db.exists("Tax Withholding Category", "Cumulative Threshold TCS"): - frappe.get_doc( - { - "doctype": "Tax Withholding Category", - "name": "Cumulative Threshold TCS", - "category_name": "10% TCS", - "rates": [ - { - "from_date": fiscal_year[1], - "to_date": fiscal_year[2], - "tax_withholding_rate": 10, - "single_threshold": 0, - "cumulative_threshold": 30000.00, - } - ], - "accounts": [{"company": "_Test Company", "account": "TCS - _TC"}], - } - ).insert() + # Category for TCS + create_tax_withholding_category( + category_name="Cumulative Threshold TCS", + rate=10, + from_date=from_date, + to_date=to_date, + account="TCS - _TC", + single_threshold=0, + cumulative_threshold=30000.00, + ) - # Single thresold - if not frappe.db.exists("Tax Withholding Category", "Single Threshold TDS"): - frappe.get_doc( - { - "doctype": "Tax Withholding Category", - "name": "Single Threshold TDS", - "category_name": "10% TDS", - "rates": [ - { - "from_date": fiscal_year[1], - "to_date": fiscal_year[2], - "tax_withholding_rate": 10, - "single_threshold": 20000.00, - "cumulative_threshold": 0, - } - ], - "accounts": [{"company": "_Test Company", "account": "TDS - _TC"}], - } - ).insert() + # Single threshold + create_tax_withholding_category( + category_name="Single Threshold TDS", + rate=10, + from_date=from_date, + to_date=to_date, + account="TDS - _TC", + single_threshold=20000, + cumulative_threshold=0, + ) - if not frappe.db.exists("Tax Withholding Category", "New TDS Category"): - frappe.get_doc( - { - "doctype": "Tax Withholding Category", - "name": "New TDS Category", - "category_name": "New TDS Category", - "round_off_tax_amount": 1, - "consider_party_ledger_amount": 1, - "tax_on_excess_amount": 1, - "rates": [ - { - "from_date": fiscal_year[1], - "to_date": fiscal_year[2], - "tax_withholding_rate": 10, - "single_threshold": 0, - "cumulative_threshold": 30000, - } - ], - "accounts": [{"company": "_Test Company", "account": "TDS - _TC"}], - } - ).insert() + create_tax_withholding_category( + category_name="New TDS Category", + rate=10, + from_date=from_date, + to_date=to_date, + account="TDS - _TC", + single_threshold=0, + cumulative_threshold=30000, + round_off_tax_amount=1, + consider_party_ledger_amount=1, + tax_on_excess_amount=1, + ) - if not frappe.db.exists("Tax Withholding Category", "Test Service Category"): - frappe.get_doc( - { - "doctype": "Tax Withholding Category", - "name": "Test Service Category", - "category_name": "Test Service Category", - "rates": [ - { - "from_date": fiscal_year[1], - "to_date": fiscal_year[2], - "tax_withholding_rate": 10, - "single_threshold": 2000, - "cumulative_threshold": 2000, - } - ], - "accounts": [{"company": "_Test Company", "account": "TDS - _TC"}], - } - ).insert() + create_tax_withholding_category( + category_name="Test Service Category", + rate=10, + from_date=from_date, + to_date=to_date, + account="TDS - _TC", + single_threshold=2000, + cumulative_threshold=2000, + ) + + create_tax_withholding_category( + category_name="Test Goods Category", + rate=10, + from_date=from_date, + to_date=to_date, + account="TDS - _TC", + single_threshold=2000, + cumulative_threshold=2000, + ) + + create_tax_withholding_category( + category_name="Test Multi Invoice Category", + rate=10, + from_date=from_date, + to_date=to_date, + account="TDS - _TC", + single_threshold=5000, + cumulative_threshold=10000, + ) + + create_tax_withholding_category( + category_name="Advance TDS Category", + rate=10, + from_date=from_date, + to_date=to_date, + account="TDS - _TC", + single_threshold=5000, + cumulative_threshold=10000, + consider_party_ledger_amount=1, + ) - if not frappe.db.exists("Tax Withholding Category", "Test Goods Category"): - frappe.get_doc( - { - "doctype": "Tax Withholding Category", - "name": "Test Goods Category", - "category_name": "Test Goods Category", - "rates": [ - { - "from_date": fiscal_year[1], - "to_date": fiscal_year[2], - "tax_withholding_rate": 10, - "single_threshold": 2000, - "cumulative_threshold": 2000, - } - ], - "accounts": [{"company": "_Test Company", "account": "TDS - _TC"}], - } - ).insert() - if not frappe.db.exists("Tax Withholding Category", "Test Multi Invoice Category"): +def create_tax_withholding_category( + category_name, + rate, + from_date, + to_date, + account, + single_threshold=0, + cumulative_threshold=0, + round_off_tax_amount=0, + consider_party_ledger_amount=0, + tax_on_excess_amount=0, +): + if not frappe.db.exists("Tax Withholding Category", category_name): frappe.get_doc( { "doctype": "Tax Withholding Category", - "name": "Test Multi Invoice Category", - "category_name": "Test Multi Invoice Category", + "name": category_name, + "category_name": category_name, + "round_off_tax_amount": round_off_tax_amount, + "consider_party_ledger_amount": consider_party_ledger_amount, + "tax_on_excess_amount": tax_on_excess_amount, "rates": [ { - "from_date": fiscal_year[1], - "to_date": fiscal_year[2], - "tax_withholding_rate": 10, - "single_threshold": 5000, - "cumulative_threshold": 10000, + "from_date": from_date, + "to_date": to_date, + "tax_withholding_rate": rate, + "single_threshold": single_threshold, + "cumulative_threshold": cumulative_threshold, } ], - "accounts": [{"company": "_Test Company", "account": "TDS - _TC"}], + "accounts": [{"company": "_Test Company", "account": account}], } ).insert() From c04f11b4f8a21dfed3724ab8af22f3f6fe0d966d Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Mon, 23 Jan 2023 14:16:31 +0530 Subject: [PATCH 080/355] chore: update translations for naming series error (cherry picked from commit bbde1f611f3553b974d193bbe00d1c383e0f4387) --- erpnext/translations/af.csv | 2 +- erpnext/translations/am.csv | 2 +- erpnext/translations/ar.csv | 2 +- erpnext/translations/bg.csv | 2 +- erpnext/translations/bn.csv | 2 +- erpnext/translations/bs.csv | 2 +- erpnext/translations/ca.csv | 2 +- erpnext/translations/cs.csv | 2 +- erpnext/translations/da.csv | 2 +- erpnext/translations/de.csv | 2 +- erpnext/translations/el.csv | 2 +- erpnext/translations/es.csv | 2 +- erpnext/translations/et.csv | 2 +- erpnext/translations/fa.csv | 2 +- erpnext/translations/fi.csv | 2 +- erpnext/translations/fr.csv | 2 +- erpnext/translations/gu.csv | 2 +- erpnext/translations/he.csv | 2 +- erpnext/translations/hi.csv | 2 +- erpnext/translations/hr.csv | 2 +- erpnext/translations/hu.csv | 2 +- erpnext/translations/id.csv | 2 +- erpnext/translations/is.csv | 2 +- erpnext/translations/it.csv | 2 +- erpnext/translations/ja.csv | 2 +- erpnext/translations/km.csv | 2 +- erpnext/translations/kn.csv | 2 +- erpnext/translations/ko.csv | 2 +- erpnext/translations/ku.csv | 2 +- erpnext/translations/lo.csv | 2 +- erpnext/translations/lt.csv | 2 +- erpnext/translations/lv.csv | 2 +- erpnext/translations/mk.csv | 2 +- erpnext/translations/ml.csv | 2 +- erpnext/translations/mr.csv | 2 +- erpnext/translations/ms.csv | 2 +- erpnext/translations/my.csv | 2 +- erpnext/translations/nl.csv | 2 +- erpnext/translations/no.csv | 2 +- erpnext/translations/pl.csv | 2 +- erpnext/translations/ps.csv | 2 +- erpnext/translations/pt-BR.csv | 2 +- erpnext/translations/pt.csv | 2 +- erpnext/translations/ro.csv | 2 +- erpnext/translations/ru.csv | 2 +- erpnext/translations/rw.csv | 2 +- erpnext/translations/si.csv | 2 +- erpnext/translations/sk.csv | 2 +- erpnext/translations/sl.csv | 2 +- erpnext/translations/sq.csv | 2 +- erpnext/translations/sr.csv | 2 +- erpnext/translations/sv.csv | 2 +- erpnext/translations/sw.csv | 2 +- erpnext/translations/ta.csv | 2 +- erpnext/translations/te.csv | 2 +- erpnext/translations/th.csv | 2 +- erpnext/translations/tr.csv | 2 +- erpnext/translations/uk.csv | 2 +- erpnext/translations/ur.csv | 2 +- erpnext/translations/uz.csv | 2 +- erpnext/translations/vi.csv | 2 +- erpnext/translations/zh.csv | 2 +- erpnext/translations/zh_tw.csv | 2 +- 63 files changed, 63 insertions(+), 63 deletions(-) diff --git a/erpnext/translations/af.csv b/erpnext/translations/af.csv index 45435d860082..c6cc2eae3bff 100644 --- a/erpnext/translations/af.csv +++ b/erpnext/translations/af.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kwaliteit-terugvoersjabloon, Rules for applying different promotional schemes.,Reëls vir die toepassing van verskillende promosieskemas., Shift,verskuiwing, Show {0},Wys {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Spesiale karakters behalwe "-", "#", ".", "/", "{" En "}" word nie toegelaat in die naamreekse nie", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Spesiale karakters behalwe "-", "#", ".", "/", "{" En "}" word nie toegelaat in die naamreekse nie {0}", Target Details,Teikenbesonderhede, {0} already has a Parent Procedure {1}.,{0} het reeds 'n ouerprosedure {1}., API,API, diff --git a/erpnext/translations/am.csv b/erpnext/translations/am.csv index 554b0a54f1c4..28d543313aca 100644 --- a/erpnext/translations/am.csv +++ b/erpnext/translations/am.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,የጥራት ግብረ መልስ አብነት።, Rules for applying different promotional schemes.,የተለያዩ የማስተዋወቂያ ዘዴዎችን ለመተግበር ህጎች።, Shift,ቀይር, Show {0},አሳይ {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",ከ "-" ፣ "#" ፣ "፣" ፣ "/" ፣ "{" እና "}" በስተቀር ልዩ ቁምፊዎች ከመለያ መሰየሚያ አይፈቀድም, +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",ከ "-" ፣ "#" ፣ "፣" ፣ "/" ፣ "{" እና "}" በስተቀር ልዩ ቁምፊዎች ከመለያ መሰየሚያ አይፈቀድም {0}, Target Details,የ Detailsላማ ዝርዝሮች።, {0} already has a Parent Procedure {1}.,{0} ቀድሞውኑ የወላጅ አሰራር ሂደት አለው {1}።, API,ኤ ፒ አይ, diff --git a/erpnext/translations/ar.csv b/erpnext/translations/ar.csv index e62f61a4f55e..e2cf68caca74 100644 --- a/erpnext/translations/ar.csv +++ b/erpnext/translations/ar.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,قالب ملاحظات الجودة, Rules for applying different promotional schemes.,قواعد تطبيق المخططات الترويجية المختلفة., Shift,تحول, Show {0},عرض {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",الأحرف الخاصة باستثناء "-" ، "#" ، "." ، "/" ، "{" و "}" غير مسموح في سلسلة التسمية, +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",{0} الأحرف الخاصة باستثناء "-" ، "#" ، "." ، "/" ، "{" و "}" غير مسموح في سلسلة التسمية, Target Details,تفاصيل الهدف, {0} already has a Parent Procedure {1}.,{0} يحتوي بالفعل على إجراء الأصل {1}., API,API, diff --git a/erpnext/translations/bg.csv b/erpnext/translations/bg.csv index 15278a6a40c7..b7af7ee23b47 100644 --- a/erpnext/translations/bg.csv +++ b/erpnext/translations/bg.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Качествен обратен шаблон, Rules for applying different promotional schemes.,Правила за прилагане на различни промоционални схеми., Shift,изместване, Show {0},Показване на {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Специални символи, с изключение на "-", "#", ".", "/", "{" И "}" не са позволени в именуването на серии", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Специални символи, с изключение на "-", "#", ".", "/", "{" И "}" не са позволени в именуването на серии {0}", Target Details,Детайли за целта, {0} already has a Parent Procedure {1}.,{0} вече има родителска процедура {1}., API,API, diff --git a/erpnext/translations/bn.csv b/erpnext/translations/bn.csv index cf0971667b00..dcfb3e8c5ae0 100644 --- a/erpnext/translations/bn.csv +++ b/erpnext/translations/bn.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,গুণমান প্রতিক্রিয় Rules for applying different promotional schemes.,বিভিন্ন প্রচারমূলক স্কিম প্রয়োগ করার নিয়ম।, Shift,পরিবর্তন, Show {0},{0} দেখান, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","নামকরণ সিরিজে "-", "#", "।", "/", "{" এবং "}" ব্যতীত বিশেষ অক্ষর অনুমোদিত নয়", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","নামকরণ সিরিজে "-", "#", "।", "/", "{" এবং "}" ব্যতীত বিশেষ অক্ষর অনুমোদিত নয় {0}", Target Details,টার্গেটের বিশদ, {0} already has a Parent Procedure {1}.,{0} ইতিমধ্যে একটি মূল পদ্ধতি আছে {1}।, API,এপিআই, diff --git a/erpnext/translations/bs.csv b/erpnext/translations/bs.csv index 6ef445a1af0e..e9d13dcf056d 100644 --- a/erpnext/translations/bs.csv +++ b/erpnext/translations/bs.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Predložak kvalitetne povratne informacije, Rules for applying different promotional schemes.,Pravila za primjenu različitih promotivnih shema., Shift,Shift, Show {0},Prikaži {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Posebni znakovi osim "-", "#", ".", "/", "{" I "}" nisu dozvoljeni u imenovanju serija", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Posebni znakovi osim "-", "#", ".", "/", "{" I "}" nisu dozvoljeni u imenovanju serija {0}", Target Details,Detalji cilja, {0} already has a Parent Procedure {1}.,{0} već ima roditeljsku proceduru {1}., API,API, diff --git a/erpnext/translations/ca.csv b/erpnext/translations/ca.csv index 18fa52a2b794..a1918b04eabf 100644 --- a/erpnext/translations/ca.csv +++ b/erpnext/translations/ca.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Plantilla de comentaris de qualitat, Rules for applying different promotional schemes.,Normes per aplicar diferents règims promocionals., Shift,Majúscules, Show {0},Mostra {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Caràcters especials, excepte "-", "#", ".", "/", "{" I "}" no estan permesos en nomenar sèries", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caràcters especials, excepte "-", "#", ".", "/", "{" I "}" no estan permesos en nomenar sèries {0}", Target Details,Detalls de l'objectiu, {0} already has a Parent Procedure {1}.,{0} ja té un procediment progenitor {1}., API,API, diff --git a/erpnext/translations/cs.csv b/erpnext/translations/cs.csv index 705e471d2780..33f242d25b9f 100644 --- a/erpnext/translations/cs.csv +++ b/erpnext/translations/cs.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Šablona zpětné vazby kvality, Rules for applying different promotional schemes.,Pravidla pro uplatňování různých propagačních programů., Shift,Posun, Show {0},Zobrazit {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Zvláštní znaky kromě "-", "#", ".", "/", "{" A "}" nejsou v názvových řadách povoleny", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Zvláštní znaky kromě "-", "#", ".", "/", "{" A "}" nejsou v názvových řadách povoleny {0}", Target Details,Podrobnosti o cíli, {0} already has a Parent Procedure {1}.,{0} již má rodičovský postup {1}., API,API, diff --git a/erpnext/translations/da.csv b/erpnext/translations/da.csv index c0d014669432..ca6bb64f24da 100644 --- a/erpnext/translations/da.csv +++ b/erpnext/translations/da.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kvalitetsfeedback-skabelon, Rules for applying different promotional schemes.,Regler for anvendelse af forskellige salgsfremmende ordninger., Shift,Flytte, Show {0},Vis {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Specialtegn undtagen "-", "#", ".", "/", "{" Og "}" er ikke tilladt i navngivningsserier", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Specialtegn undtagen "-", "#", ".", "/", "{" Og "}" er ikke tilladt i navngivningsserier {0}", Target Details,Måldetaljer, {0} already has a Parent Procedure {1}.,{0} har allerede en overordnet procedure {1}., API,API, diff --git a/erpnext/translations/de.csv b/erpnext/translations/de.csv index 4cba02a6accb..75c73d6597b8 100644 --- a/erpnext/translations/de.csv +++ b/erpnext/translations/de.csv @@ -3546,7 +3546,7 @@ Quality Feedback Template,Qualitäts-Feedback-Vorlage, Rules for applying different promotional schemes.,Regeln für die Anwendung verschiedener Werbemaßnahmen., Shift,Verschiebung, Show {0},{0} anzeigen, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Sonderzeichen außer "-", "#", ".", "/", "{" Und "}" sind bei der Benennung von Serien nicht zulässig", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Sonderzeichen außer "-", "#", ".", "/", "{" Und "}" sind bei der Benennung von Serien nicht zulässig {0}", Target Details,Zieldetails, {0} already has a Parent Procedure {1}.,{0} hat bereits eine übergeordnete Prozedur {1}., API,API, diff --git a/erpnext/translations/el.csv b/erpnext/translations/el.csv index acf5db5d467e..7ba3e5dc676f 100644 --- a/erpnext/translations/el.csv +++ b/erpnext/translations/el.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Πρότυπο σχολιασμού ποιότητας Rules for applying different promotional schemes.,Κανόνες εφαρμογής διαφορετικών προγραμμάτων προώθησης., Shift,Βάρδια, Show {0},Εμφάνιση {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Ειδικοί χαρακτήρες εκτός από "-", "#", ".", "/", "" Και "}" δεν επιτρέπονται στη σειρά ονομασίας", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Ειδικοί χαρακτήρες εκτός από "-", "#", ".", "/", "" Και "}" δεν επιτρέπονται στη σειρά ονομασίας {0}", Target Details,Στοιχεία στόχου, {0} already has a Parent Procedure {1}.,{0} έχει ήδη μια διαδικασία γονέα {1}., API,API, diff --git a/erpnext/translations/es.csv b/erpnext/translations/es.csv index 0f2259db21ea..c7097f193601 100644 --- a/erpnext/translations/es.csv +++ b/erpnext/translations/es.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Plantilla de comentarios de calidad, Rules for applying different promotional schemes.,Reglas para aplicar diferentes esquemas promocionales., Shift,Cambio, Show {0},Mostrar {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Caracteres especiales excepto "-", "#", ".", "/", "{" Y "}" no están permitidos en las series de nombres", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caracteres especiales excepto "-", "#", ".", "/", "{" Y "}" no están permitidos en las series de nombres {0}", Target Details,Detalles del objetivo, {0} already has a Parent Procedure {1}.,{0} ya tiene un Procedimiento principal {1}., API,API, diff --git a/erpnext/translations/et.csv b/erpnext/translations/et.csv index ba32187c6805..36476961325a 100644 --- a/erpnext/translations/et.csv +++ b/erpnext/translations/et.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kvaliteetse tagasiside mall, Rules for applying different promotional schemes.,Erinevate reklaamiskeemide rakenduseeskirjad., Shift,Vahetus, Show {0},Kuva {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Erimärgid, välja arvatud "-", "#", ".", "/", "{" Ja "}" pole sarjade nimetamisel lubatud", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Erimärgid, välja arvatud "-", "#", ".", "/", "{" Ja "}" pole sarjade nimetamisel lubatud {0}", Target Details,Sihtkoha üksikasjad, {0} already has a Parent Procedure {1}.,{0} juba on vanemamenetlus {1}., API,API, diff --git a/erpnext/translations/fa.csv b/erpnext/translations/fa.csv index 4a7c979499ec..2f6627b87a66 100644 --- a/erpnext/translations/fa.csv +++ b/erpnext/translations/fa.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,الگوی بازخورد کیفیت, Rules for applying different promotional schemes.,قوانین استفاده از طرح های تبلیغاتی مختلف., Shift,تغییر مکان, Show {0},نمایش {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",کاراکترهای خاص به جز "-" ، "#" ، "." ، "/" ، "{" و "}" در سریال نامگذاری مجاز نیستند, +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",{0} کاراکترهای خاص به جز "-" ، "#" ، "." ، "/" ، "{" و "}" در سریال نامگذاری مجاز نیستند, Target Details,جزئیات هدف, {0} already has a Parent Procedure {1}.,{0} در حال حاضر یک روش والدین {1} دارد., API,API, diff --git a/erpnext/translations/fi.csv b/erpnext/translations/fi.csv index 29eb56702d71..4b0326c83ed9 100644 --- a/erpnext/translations/fi.csv +++ b/erpnext/translations/fi.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Laadun palautteen malli, Rules for applying different promotional schemes.,Säännöt erilaisten myynninedistämisjärjestelmien soveltamisesta., Shift,Siirtää, Show {0},Näytä {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Erikoismerkit paitsi "-", "#", ".", "/", "{" Ja "}" eivät ole sallittuja nimeämissarjoissa", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Erikoismerkit paitsi "-", "#", ".", "/", "{" Ja "}" eivät ole sallittuja nimeämissarjoissa {0}", Target Details,Kohteen yksityiskohdat, {0} already has a Parent Procedure {1}.,{0}: llä on jo vanhempainmenettely {1}., API,API, diff --git a/erpnext/translations/fr.csv b/erpnext/translations/fr.csv index 3ba5ade62993..5646191cb029 100644 --- a/erpnext/translations/fr.csv +++ b/erpnext/translations/fr.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Modèle de commentaires sur la qualité, Rules for applying different promotional schemes.,Règles d'application de différents programmes promotionnels., Shift,Décalage, Show {0},Montrer {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Caractères spéciaux sauf "-", "#", ".", "/", "{" Et "}" non autorisés dans les séries de nommage", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caractères spéciaux sauf "-", "#", ".", "/", "{" Et "}" non autorisés dans les séries de nommage {0}", Target Details,Détails de la cible, {0} already has a Parent Procedure {1}.,{0} a déjà une procédure parent {1}., API,API, diff --git a/erpnext/translations/gu.csv b/erpnext/translations/gu.csv index 5c2b520d9ec6..964c01c6b60c 100644 --- a/erpnext/translations/gu.csv +++ b/erpnext/translations/gu.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,ગુણવત્તા પ્રતિસાદ Temp Rules for applying different promotional schemes.,વિવિધ પ્રમોશનલ યોજનાઓ લાગુ કરવાના નિયમો., Shift,પાળી, Show {0},બતાવો {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",""-", "#", ".", "/", "{" અને "}" સિવાયના વિશેષ અક્ષરો નામકરણ શ્રેણીમાં મંજૂરી નથી", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" અને "}" સિવાયના વિશેષ અક્ષરો નામકરણ શ્રેણીમાં મંજૂરી નથી {0}", Target Details,લક્ષ્યાંક વિગતો, {0} already has a Parent Procedure {1}.,{0} પાસે પહેલેથી જ પિતૃ કાર્યવાહી છે {1}., API,API, diff --git a/erpnext/translations/he.csv b/erpnext/translations/he.csv index 29e6f6afc322..c5b7adb258d5 100644 --- a/erpnext/translations/he.csv +++ b/erpnext/translations/he.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,תבנית משוב איכותית, Rules for applying different promotional schemes.,כללים ליישום תוכניות קידום מכירות שונות., Shift,מִשׁמֶרֶת, Show {0},הצג את {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","תווים מיוחדים למעט "-", "#", ".", "/", "{" ו- "}" אינם מורשים בסדרות שמות", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","{0} תווים מיוחדים למעט "-", "#", ".", "/", "{" ו- "}" אינם מורשים בסדרות שמות", Target Details,פרטי יעד, {0} already has a Parent Procedure {1}.,{0} כבר יש נוהל הורים {1}., API,ממשק API, diff --git a/erpnext/translations/hi.csv b/erpnext/translations/hi.csv index c385fc6ef602..247ad694e3da 100644 --- a/erpnext/translations/hi.csv +++ b/erpnext/translations/hi.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,गुणवत्ता प्रतिक्रि Rules for applying different promotional schemes.,विभिन्न प्रचार योजनाओं को लागू करने के लिए नियम।, Shift,खिसक जाना, Show {0},{0} दिखाएं, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",""-", "#", "।", "/", "{" और "}" को छोड़कर विशेष वर्ण श्रृंखला में अनुमति नहीं है", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", "।", "/", "{" और "}" को छोड़कर विशेष वर्ण श्रृंखला में अनुमति नहीं है {0}", Target Details,लक्ष्य विवरण, {0} already has a Parent Procedure {1}.,{0} पहले से ही एक पेरेंट प्रोसीजर {1} है।, API,एपीआई, diff --git a/erpnext/translations/hr.csv b/erpnext/translations/hr.csv index a544e98868bb..9f0ff0bbf85d 100644 --- a/erpnext/translations/hr.csv +++ b/erpnext/translations/hr.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Predložak povratne informacije o kvaliteti, Rules for applying different promotional schemes.,Pravila za primjenu različitih promotivnih shema., Shift,smjena, Show {0},Prikaži {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Posebni znakovi osim "-", "#", ".", "/", "{" I "}" nisu dopušteni u imenovanju serija", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Posebni znakovi osim "-", "#", ".", "/", "{" I "}" nisu dopušteni u imenovanju serija {0}", Target Details,Pojedinosti cilja, {0} already has a Parent Procedure {1}.,{0} već ima roditeljski postupak {1}., API,API, diff --git a/erpnext/translations/hu.csv b/erpnext/translations/hu.csv index 29f347ecbc69..248cee97a8ef 100644 --- a/erpnext/translations/hu.csv +++ b/erpnext/translations/hu.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Minőségi visszajelző sablon, Rules for applying different promotional schemes.,Különböző promóciós rendszerek alkalmazásának szabályai., Shift,Váltás, Show {0},Mutasd {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Speciális karakterek, kivéve "-", "#", ".", "/", "{" És "}", a sorozatok elnevezése nem megengedett", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Speciális karakterek, kivéve "-", "#", ".", "/", "{" És "}", a sorozatok elnevezése nem megengedett {0}", Target Details,Cél részletei, {0} already has a Parent Procedure {1}.,A (z) {0} már rendelkezik szülői eljárással {1}., API,API, diff --git a/erpnext/translations/id.csv b/erpnext/translations/id.csv index 7175ad2fa741..2108184a9065 100644 --- a/erpnext/translations/id.csv +++ b/erpnext/translations/id.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Template Umpan Balik Kualitas, Rules for applying different promotional schemes.,Aturan untuk menerapkan berbagai skema promosi., Shift,Bergeser, Show {0},Tampilkan {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Karakter Khusus kecuali "-", "#", ".", "/", "{" Dan "}" tidak diizinkan dalam rangkaian penamaan", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Karakter Khusus kecuali "-", "#", ".", "/", "{" Dan "}" tidak diizinkan dalam rangkaian penamaan {0}", Target Details,Detail Target, {0} already has a Parent Procedure {1}.,{0} sudah memiliki Prosedur Induk {1}., API,API, diff --git a/erpnext/translations/is.csv b/erpnext/translations/is.csv index 5f56aff3dc79..d31e279ffca8 100644 --- a/erpnext/translations/is.csv +++ b/erpnext/translations/is.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Sniðmát fyrir gæði gæða, Rules for applying different promotional schemes.,Reglur um beitingu mismunandi kynningarkerfa., Shift,Vakt, Show {0},Sýna {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Sérstafir nema "-", "#", ".", "/", "{" Og "}" ekki leyfðar í nafngiftiröð", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Sérstafir nema "-", "#", ".", "/", "{" Og "}" ekki leyfðar í nafngiftiröð {0}", Target Details,Upplýsingar um markmið, {0} already has a Parent Procedure {1}.,{0} er þegar með foreldraferli {1}., API,API, diff --git a/erpnext/translations/it.csv b/erpnext/translations/it.csv index 3a1d73f34475..23379d83cd7a 100644 --- a/erpnext/translations/it.csv +++ b/erpnext/translations/it.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Modello di feedback sulla qualità, Rules for applying different promotional schemes.,Regole per l'applicazione di diversi schemi promozionali., Shift,Cambio, Show {0},Mostra {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Caratteri speciali tranne "-", "#", ".", "/", "{" E "}" non consentiti nelle serie di nomi", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caratteri speciali tranne "-", "#", ".", "/", "{" E "}" non consentiti nelle serie di nomi {0}", Target Details,Dettagli target, {0} already has a Parent Procedure {1}.,{0} ha già una procedura padre {1}., API,API, diff --git a/erpnext/translations/ja.csv b/erpnext/translations/ja.csv index 6e2eaae4a448..a7936e968940 100644 --- a/erpnext/translations/ja.csv +++ b/erpnext/translations/ja.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,品質フィードバックテンプレート, Rules for applying different promotional schemes.,さまざまなプロモーションスキームを適用するための規則。, Shift,シフト, Show {0},{0}を表示, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series"," - "、 "#"、 "。"、 "/"、 "{"、および "}"以外の特殊文字は、一連の名前付けでは使用できません, +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}"," - "、 "#"、 "。"、 "/"、 "{"、および "}"以外の特殊文字は、一連の名前付けでは使用できません {0}, Target Details,ターゲット詳細, {0} already has a Parent Procedure {1}.,{0}にはすでに親プロシージャー{1}があります。, API,API, diff --git a/erpnext/translations/km.csv b/erpnext/translations/km.csv index e2a528cea2ab..46f1440197aa 100644 --- a/erpnext/translations/km.csv +++ b/erpnext/translations/km.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,គំរូមតិយោបល់គុណភាព Rules for applying different promotional schemes.,វិធានសម្រាប់អនុវត្តគម្រោងផ្សព្វផ្សាយផ្សេងៗគ្នា។, Shift,ប្តូរ។, Show {0},បង្ហាញ {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","តួអក្សរពិសេសលើកលែងតែ "-", "#", "។ ", "/", "{" និង "}" មិនត្រូវបានអនុញ្ញាតក្នុងស៊េរីដាក់ឈ្មោះ", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","តួអក្សរពិសេសលើកលែងតែ "-", "#", "។ ", "/", "{" និង "}" មិនត្រូវបានអនុញ្ញាតក្នុងស៊េរីដាក់ឈ្មោះ {0}", Target Details,ព័ត៌មានលម្អិតគោលដៅ។, {0} already has a Parent Procedure {1}.,{0} មាននីតិវិធីឪពុកម្តាយរួចហើយ {1} ។, API,API, diff --git a/erpnext/translations/kn.csv b/erpnext/translations/kn.csv index 4a9173d4a03f..5700af925829 100644 --- a/erpnext/translations/kn.csv +++ b/erpnext/translations/kn.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,ಗುಣಮಟ್ಟದ ಪ್ರತಿಕ್ರಿ Rules for applying different promotional schemes.,ವಿಭಿನ್ನ ಪ್ರಚಾರ ಯೋಜನೆಗಳನ್ನು ಅನ್ವಯಿಸುವ ನಿಯಮಗಳು., Shift,ಶಿಫ್ಟ್, Show {0},{0} ತೋರಿಸು, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",""-", "#", ".", "/", "{" ಮತ್ತು "}" ಹೊರತುಪಡಿಸಿ ವಿಶೇಷ ಅಕ್ಷರಗಳನ್ನು ಹೆಸರಿಸುವ ಸರಣಿಯಲ್ಲಿ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" ಮತ್ತು "}" ಹೊರತುಪಡಿಸಿ ವಿಶೇಷ ಅಕ್ಷರಗಳನ್ನು ಹೆಸರಿಸುವ ಸರಣಿಯಲ್ಲಿ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ {0}", Target Details,ಗುರಿ ವಿವರಗಳು, {0} already has a Parent Procedure {1}.,{0} ಈಗಾಗಲೇ ಪೋಷಕ ವಿಧಾನವನ್ನು ಹೊಂದಿದೆ {1}., API,API, diff --git a/erpnext/translations/ko.csv b/erpnext/translations/ko.csv index c051b07bea5c..e66b07998219 100644 --- a/erpnext/translations/ko.csv +++ b/erpnext/translations/ko.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,품질 피드백 템플릿, Rules for applying different promotional schemes.,다양한 홍보 계획을 적용하기위한 규칙., Shift,시프트, Show {0},{0} 표시, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","이름 계열에 허용되지 않는 "-", "#", ".", "/", "{"및 "}"을 제외한 특수 문자", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","이름 계열에 허용되지 않는 "-", "#", ".", "/", "{"및 "}"을 제외한 특수 문자 {0}", Target Details,대상 세부 정보, {0} already has a Parent Procedure {1}.,{0}에 이미 상위 절차 {1}이 있습니다., API,API, diff --git a/erpnext/translations/ku.csv b/erpnext/translations/ku.csv index 6962ea1ef132..41f7d8366487 100644 --- a/erpnext/translations/ku.csv +++ b/erpnext/translations/ku.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Feedablonê nerazîbûna kalîteyê, Rules for applying different promotional schemes.,Qanûnên ji bo bicihanîna nexşeyên cûda yên danasînê, Shift,Tarloqî, Show {0},Show {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Di tîpa navnasî de ji bilî "-", "#", ".", "/", "{" Û "}" tîpên Taybet", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Di tîpa navnasî de ji bilî "-", "#", ".", "/", "{" Û "}" tîpên Taybet {0}", Target Details,Hûrgulên armancê, {0} already has a Parent Procedure {1}.,{0} ji berê ve heye Parent Procedure {1}., API,API, diff --git a/erpnext/translations/lo.csv b/erpnext/translations/lo.csv index b61476cf17b4..728f9ffc9ca3 100644 --- a/erpnext/translations/lo.csv +++ b/erpnext/translations/lo.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,ແມ່ແບບ ຄຳ ຕິຊົມຄຸນນ Rules for applying different promotional schemes.,ກົດລະບຽບໃນການ ນຳ ໃຊ້ແຜນການໂຄສະນາທີ່ແຕກຕ່າງກັນ., Shift,ປ່ຽນ, Show {0},ສະແດງ {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","ຕົວລະຄອນພິເສດຍົກເວັ້ນ "-", "#", ".", "/", "{" ແລະ "}" ບໍ່ໄດ້ຖືກອະນຸຍາດໃນຊຸດຊື່", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","ຕົວລະຄອນພິເສດຍົກເວັ້ນ "-", "#", ".", "/", "{" ແລະ "}" ບໍ່ໄດ້ຖືກອະນຸຍາດໃນຊຸດຊື່ {0}", Target Details,ລາຍລະອຽດເປົ້າ ໝາຍ, {0} already has a Parent Procedure {1}.,{0} ມີຂັ້ນຕອນການເປັນພໍ່ແມ່ {1} ແລ້ວ., API,API, diff --git a/erpnext/translations/lt.csv b/erpnext/translations/lt.csv index 78571f962431..0fe7f859020c 100644 --- a/erpnext/translations/lt.csv +++ b/erpnext/translations/lt.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kokybės atsiliepimų šablonas, Rules for applying different promotional schemes.,Skirtingų reklamos schemų taikymo taisyklės., Shift,Pamaina, Show {0},Rodyti {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Specialieji simboliai, išskyrus „-“, „#“, „.“, „/“, „{“ Ir „}“, neleidžiami įvardyti serijomis", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Specialieji simboliai, išskyrus „-“, „#“, „.“, „/“, „{“ Ir „}“, neleidžiami įvardyti serijomis {0}", Target Details,Tikslinė informacija, {0} already has a Parent Procedure {1}.,{0} jau turi tėvų procedūrą {1}., API,API, diff --git a/erpnext/translations/lv.csv b/erpnext/translations/lv.csv index cbf04855d026..87a3e369bcf4 100644 --- a/erpnext/translations/lv.csv +++ b/erpnext/translations/lv.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kvalitatīvas atsauksmes veidne, Rules for applying different promotional schemes.,Noteikumi dažādu reklāmas shēmu piemērošanai., Shift,Maiņa, Show {0},Rādīt {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Speciālās rakstzīmes, izņemot "-", "#", ".", "/", "{" Un "}", kas nav atļautas nosaukuma sērijās", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Speciālās rakstzīmes, izņemot "-", "#", ".", "/", "{" Un "}", kas nav atļautas nosaukuma sērijās {0}", Target Details,Mērķa informācija, {0} already has a Parent Procedure {1}.,{0} jau ir vecāku procedūra {1}., API,API, diff --git a/erpnext/translations/mk.csv b/erpnext/translations/mk.csv index 70080255346a..40b8d2637e49 100644 --- a/erpnext/translations/mk.csv +++ b/erpnext/translations/mk.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Шаблон за повратни информаци Rules for applying different promotional schemes.,Правила за примена на различни промотивни шеми., Shift,Смена, Show {0},Покажи {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Не се дозволени специјални карактери освен "-", "#", ".", "/", "{" И "}" во сериите за именување", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Не се дозволени специјални карактери освен "-", "#", ".", "/", "{" И "}" во сериите за именување {0}", Target Details,Цели детали, {0} already has a Parent Procedure {1}.,{0} веќе има Матична постапка {1}., API,API, diff --git a/erpnext/translations/ml.csv b/erpnext/translations/ml.csv index f917969345a3..14af878e80be 100644 --- a/erpnext/translations/ml.csv +++ b/erpnext/translations/ml.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,ഗുണനിലവാരമുള്ള ഫീഡ Rules for applying different promotional schemes.,വ്യത്യസ്ത പ്രമോഷണൽ സ്കീമുകൾ പ്രയോഗിക്കുന്നതിനുള്ള നിയമങ്ങൾ., Shift,ഷിഫ്റ്റ്, Show {0},{0} കാണിക്കുക, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",""-", "#", ".", "/", "{", "}" എന്നിവ ഒഴികെയുള്ള പ്രത്യേക പ്രതീകങ്ങൾ നാമകരണ ശ്രേണിയിൽ അനുവദനീയമല്ല", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{", "}" എന്നിവ ഒഴികെയുള്ള പ്രത്യേക പ്രതീകങ്ങൾ നാമകരണ ശ്രേണിയിൽ അനുവദനീയമല്ല {0}", Target Details,ടാർഗെറ്റ് വിശദാംശങ്ങൾ, {0} already has a Parent Procedure {1}.,{0} ന് ഇതിനകം ഒരു രക്ഷാകർതൃ നടപടിക്രമം ഉണ്ട് {1}., API,API, diff --git a/erpnext/translations/mr.csv b/erpnext/translations/mr.csv index 9c41ce6f33d9..0d9fffa78d01 100644 --- a/erpnext/translations/mr.csv +++ b/erpnext/translations/mr.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,गुणवत्ता अभिप्राय ट Rules for applying different promotional schemes.,वेगवेगळ्या जाहिरात योजना लागू करण्याचे नियम., Shift,शिफ्ट, Show {0},दर्शवा {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",""-", "#", ".", "/", "{" आणि "}" वगळता विशिष्ट वर्णांना नामांकन मालिकेमध्ये परवानगी नाही", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" आणि "}" वगळता विशिष्ट वर्णांना नामांकन मालिकेमध्ये परवानगी नाही {0}", Target Details,लक्ष्य तपशील, {0} already has a Parent Procedure {1}.,{0} कडे आधीपासूनच पालक प्रक्रिया आहे {1}., API,API, diff --git a/erpnext/translations/ms.csv b/erpnext/translations/ms.csv index 1483844990e3..8ca77585c2ee 100644 --- a/erpnext/translations/ms.csv +++ b/erpnext/translations/ms.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Template Maklum Balas Kualiti, Rules for applying different promotional schemes.,Kaedah untuk memohon skim promosi yang berbeza., Shift,Shift, Show {0},Tunjukkan {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Watak Khas kecuali "-", "#", ".", "/", "{" Dan "}" tidak dibenarkan dalam siri penamaan", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Watak Khas kecuali "-", "#", ".", "/", "{" Dan "}" tidak dibenarkan dalam siri penamaan {0}", Target Details,Butiran Sasaran, {0} already has a Parent Procedure {1}.,{0} sudah mempunyai Tatacara Ibu Bapa {1}., API,API, diff --git a/erpnext/translations/my.csv b/erpnext/translations/my.csv index d15ec1ec711f..0903b7195014 100644 --- a/erpnext/translations/my.csv +++ b/erpnext/translations/my.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,အရည်အသွေးတုံ့ပြန်ခ Rules for applying different promotional schemes.,ကွဲပြားခြားနားသောပရိုမိုးရှင်းအစီအစဉ်များလျှောက်ထားမှုအတွက်စည်းကမ်းများ။, Shift,အဆိုင်း, Show {0},Show ကို {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","မှလွဲ. အထူးဇာတ်ကောင် "-" "။ ", "#", "/", "{" နှင့် "}" စီးရီးနာမည်အတွက်ခွင့်မပြု", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","မှလွဲ. အထူးဇာတ်ကောင် "-" "။ ", "#", "/", "{" နှင့် "}" စီးရီးနာမည်အတွက်ခွင့်မပြု {0}", Target Details,ပစ်မှတ်အသေးစိတ်, {0} already has a Parent Procedure {1}.,{0} ပြီးသားမိဘလုပ်ထုံးလုပ်နည်း {1} ရှိပါတယ်။, API,API ကို, diff --git a/erpnext/translations/nl.csv b/erpnext/translations/nl.csv index fbadc02327fe..fe1dccb330f2 100644 --- a/erpnext/translations/nl.csv +++ b/erpnext/translations/nl.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kwaliteitsfeedbacksjabloon, Rules for applying different promotional schemes.,Regels voor het toepassen van verschillende promotieregelingen., Shift,Verschuiving, Show {0},Toon {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Speciale tekens behalve "-", "#", ".", "/", "{" En "}" niet toegestaan in naamgevingsreeks", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Speciale tekens behalve "-", "#", ".", "/", "{" En "}" niet toegestaan in naamgevingsreeks {0}", Target Details,Doelgegevens, {0} already has a Parent Procedure {1}.,{0} heeft al een ouderprocedure {1}., API,API, diff --git a/erpnext/translations/no.csv b/erpnext/translations/no.csv index 150e5ca4a2eb..56fc407b9c63 100644 --- a/erpnext/translations/no.csv +++ b/erpnext/translations/no.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kvalitet Tilbakemelding Mal, Rules for applying different promotional schemes.,Regler for anvendelse av forskjellige kampanjer., Shift,Skifte, Show {0},Vis {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Spesialtegn unntatt "-", "#", ".", "/", "{" Og "}" ikke tillatt i navneserier", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Spesialtegn unntatt "-", "#", ".", "/", "{" Og "}" ikke tillatt i navneserier {0}", Target Details,Måldetaljer, {0} already has a Parent Procedure {1}.,{0} har allerede en foreldreprosedyre {1}., API,API, diff --git a/erpnext/translations/pl.csv b/erpnext/translations/pl.csv index 8340b7272fef..8589867bb418 100644 --- a/erpnext/translations/pl.csv +++ b/erpnext/translations/pl.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Szablon opinii o jakości, Rules for applying different promotional schemes.,Zasady stosowania różnych programów promocyjnych., Shift,Przesunięcie, Show {0},Pokaż {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Znaki specjalne z wyjątkiem „-”, „#”, „.”, „/”, „{” I „}” niedozwolone w serii nazw", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Znaki specjalne z wyjątkiem „-”, „#”, „.”, „/”, „{” I „}” niedozwolone w serii nazw {0}", Target Details,Szczegóły celu, {0} already has a Parent Procedure {1}.,{0} ma już procedurę nadrzędną {1}., API,API, diff --git a/erpnext/translations/ps.csv b/erpnext/translations/ps.csv index 1dcaf48d792b..8ff55dc31757 100644 --- a/erpnext/translations/ps.csv +++ b/erpnext/translations/ps.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,د کیفیت فیډبیک ټیمپلیټ, Rules for applying different promotional schemes.,د مختلف پروموشنل سکیمونو پلي کولو قواعد., Shift,شفټ, Show {0},ښودل {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",ځانګړي نومونه د "-" ، "#" ، "." ، "/" ، "{" او "}" نوم لیکلو کې اجازه نه لري, +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",{0} ځانګړي نومونه د "-" ، "#" ، "." ، "/" ، "{" او "}" نوم لیکلو کې اجازه نه لري, Target Details,د هدف توضیحات, {0} already has a Parent Procedure {1}.,{0} د مخه د والدین پروسیجر {1} لري., API,API, diff --git a/erpnext/translations/pt-BR.csv b/erpnext/translations/pt-BR.csv index 957cb75752e3..4d8730f522ab 100644 --- a/erpnext/translations/pt-BR.csv +++ b/erpnext/translations/pt-BR.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Modelo de Feedback de Qualidade, Rules for applying different promotional schemes.,Regras para aplicar diferentes esquemas promocionais., Shift,Mudança, Show {0},Mostrar {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Caracteres especiais, exceto "-", "#", ".", "/", "{" e "}" não permitidos na série de nomenclatura", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caracteres especiais, exceto "-", "#", ".", "/", "{" e "}" não permitidos na série de nomenclatura {0}", Target Details,Detalhes do Alvo, {0} already has a Parent Procedure {1}.,{0} já tem um procedimento pai {1}., API,API, diff --git a/erpnext/translations/pt.csv b/erpnext/translations/pt.csv index 3b8a0a0f4362..991f8ed08269 100644 --- a/erpnext/translations/pt.csv +++ b/erpnext/translations/pt.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Modelo de Feedback de Qualidade, Rules for applying different promotional schemes.,Regras para aplicar diferentes esquemas promocionais., Shift,Mudança, Show {0},Mostrar {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Caracteres especiais, exceto "-", "#", ".", "/", "{" E "}" não permitidos na série de nomenclatura", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caracteres especiais, exceto "-", "#", ".", "/", "{" E "}" não permitidos na série de nomenclatura {0}", Target Details,Detalhes do Alvo, {0} already has a Parent Procedure {1}.,{0} já tem um procedimento pai {1}., API,API, diff --git a/erpnext/translations/ro.csv b/erpnext/translations/ro.csv index 643b8c5c3ed9..0a2b24e8101b 100644 --- a/erpnext/translations/ro.csv +++ b/erpnext/translations/ro.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Șablon de feedback de calitate, Rules for applying different promotional schemes.,Reguli pentru aplicarea diferitelor scheme promoționale., Shift,Schimb, Show {0},Afișați {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Caractere speciale, cu excepția "-", "#", ".", "/", "{" Și "}" nu sunt permise în numirea seriei", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caractere speciale, cu excepția "-", "#", ".", "/", "{" Și "}" nu sunt permise în numirea seriei {0}", Target Details,Detalii despre țintă, {0} already has a Parent Procedure {1}.,{0} are deja o procedură părinte {1}., API,API-ul, diff --git a/erpnext/translations/ru.csv b/erpnext/translations/ru.csv index 5f3af770cf19..99456fb7e025 100644 --- a/erpnext/translations/ru.csv +++ b/erpnext/translations/ru.csv @@ -3535,7 +3535,7 @@ Quality Feedback Template,Шаблон обратной связи по каче Rules for applying different promotional schemes.,Правила применения разных рекламных схем., Shift,Сдвиг, Show {0},Показать {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Специальные символы, кроме ""-"", ""#"", ""."", ""/"", ""{"" и ""}"", не допускаются в серийных номерах", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Специальные символы, кроме ""-"", ""#"", ""."", ""/"", ""{"" и ""}"", не допускаются в серийных номерах {0}", Target Details,Детали цели, {0} already has a Parent Procedure {1}.,{0} уже имеет родительскую процедуру {1}., API,API, diff --git a/erpnext/translations/rw.csv b/erpnext/translations/rw.csv index 64591399afac..1d2ba6ba2bf0 100644 --- a/erpnext/translations/rw.csv +++ b/erpnext/translations/rw.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Inyandikorugero nziza, Rules for applying different promotional schemes.,Amategeko yo gukoresha gahunda zitandukanye zo kwamamaza., Shift,Shift, Show {0},Erekana {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Inyuguti zidasanzwe usibye "-", "#", ".", "/", "{" Na "}" ntibyemewe mu ruhererekane rwo kwita izina", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Inyuguti zidasanzwe usibye "-", "#", ".", "/", "{" Na "}" ntibyemewe mu ruhererekane rwo kwita izina {0}", Target Details,Intego Ibisobanuro, {0} already has a Parent Procedure {1}.,{0} isanzwe ifite uburyo bwababyeyi {1}., API,API, diff --git a/erpnext/translations/si.csv b/erpnext/translations/si.csv index 690c47332d62..560ccba69886 100644 --- a/erpnext/translations/si.csv +++ b/erpnext/translations/si.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,ගුණාත්මක ප්‍රතිපෝෂ Rules for applying different promotional schemes.,විවිධ ප්‍රවර්ධන යෝජනා ක්‍රම යෙදීම සඳහා නීති., Shift,මාරුව, Show {0},{0 Show පෙන්වන්න, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",""-", "#", ".", "/", "{" සහ "}" හැර විශේෂ අක්ෂර නම් කිරීමේ ශ්‍රේණියේ අවසර නැත", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" සහ "}" හැර විශේෂ අක්ෂර නම් කිරීමේ ශ්‍රේණියේ අවසර නැත {0}", Target Details,ඉලක්ක විස්තර, {0} already has a Parent Procedure {1}.,{0} දැනටමත් දෙමාපිය ක්‍රියා පටිපාටියක් ඇත {1}., API,API, diff --git a/erpnext/translations/sk.csv b/erpnext/translations/sk.csv index cb4a7fed4b96..065b90027f40 100644 --- a/erpnext/translations/sk.csv +++ b/erpnext/translations/sk.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Šablóna spätnej väzby kvality, Rules for applying different promotional schemes.,Pravidlá uplatňovania rôznych propagačných programov., Shift,smena, Show {0},Zobraziť {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Špeciálne znaky s výnimkou „-“, „#“, „.“, „/“, „{“ A „}“ nie sú v názvových sériách povolené.", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Špeciálne znaky s výnimkou „-“, „#“, „.“, „/“, „{“ A „}“ nie sú v názvových sériách povolené {0}.", Target Details,Podrobnosti o cieli, {0} already has a Parent Procedure {1}.,{0} už má rodičovský postup {1}., API,API, diff --git a/erpnext/translations/sl.csv b/erpnext/translations/sl.csv index 8beec6be16ab..4252b248bfd3 100644 --- a/erpnext/translations/sl.csv +++ b/erpnext/translations/sl.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Predloga za povratne informacije o kakovosti, Rules for applying different promotional schemes.,Pravila za uporabo različnih promocijskih shem., Shift,Shift, Show {0},Prikaži {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Posebni znaki, razen "-", "#", ".", "/", "{" In "}" v poimenovanju ni dovoljen", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Posebni znaki, razen "-", "#", ".", "/", "{" In "}" v poimenovanju ni dovoljen {0}", Target Details,Podrobnosti cilja, {0} already has a Parent Procedure {1}.,{0} že ima nadrejeni postopek {1}., API,API, diff --git a/erpnext/translations/sq.csv b/erpnext/translations/sq.csv index 05aefa3602bb..75fbc76a8486 100644 --- a/erpnext/translations/sq.csv +++ b/erpnext/translations/sq.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Modeli i reagimit të cilësisë, Rules for applying different promotional schemes.,Rregulla për aplikimin e skemave të ndryshme promovuese., Shift,ndryshim, Show {0},Trego {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Karaktere speciale përveç "-", "#", ".", "/", "{" Dhe "}" nuk lejohen në seritë emërtuese", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Karaktere speciale përveç "-", "#", ".", "/", "{" Dhe "}" nuk lejohen në seritë emërtuese {0}", Target Details,Detaje të synuara, {0} already has a Parent Procedure {1}.,{0} tashmë ka një procedurë prindërore {1}., API,API, diff --git a/erpnext/translations/sr.csv b/erpnext/translations/sr.csv index b507f74f095b..b269869b1bea 100644 --- a/erpnext/translations/sr.csv +++ b/erpnext/translations/sr.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Квалитетни образац за поврат Rules for applying different promotional schemes.,Правила за примену различитих промотивних шема., Shift,Смена, Show {0},Прикажи {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Посебни знакови осим "-", "#", ".", "/", "{" И "}" нису дозвољени у именовању серија", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Посебни знакови осим "-", "#", ".", "/", "{" И "}" нису дозвољени у именовању серија {0}", Target Details,Детаљи циља, {0} already has a Parent Procedure {1}.,{0} већ има родитељску процедуру {1}., API,АПИ, diff --git a/erpnext/translations/sv.csv b/erpnext/translations/sv.csv index 57e02792f44d..33a331c6db15 100644 --- a/erpnext/translations/sv.csv +++ b/erpnext/translations/sv.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kvalitetsåterkopplingsmall, Rules for applying different promotional schemes.,Regler för tillämpning av olika kampanjprogram., Shift,Flytta, Show {0},Visa {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Specialtecken utom "-", "#", ".", "/", "{" Och "}" är inte tillåtna i namnserien", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Specialtecken utom "-", "#", ".", "/", "{" Och "}" är inte tillåtna i namnserien {0}", Target Details,Måldetaljer, {0} already has a Parent Procedure {1}.,{0} har redan en överordnad procedur {1}., API,API, diff --git a/erpnext/translations/sw.csv b/erpnext/translations/sw.csv index 3595727666a4..96feb9b491a0 100644 --- a/erpnext/translations/sw.csv +++ b/erpnext/translations/sw.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kiolezo cha Maoni ya Ubora, Rules for applying different promotional schemes.,Sheria za kutumia miradi tofauti ya uendelezaji., Shift,Shift, Show {0},Onyesha {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Tabia maalum isipokuwa "-", "#", ".", "/", "{" Na "}" hairuhusiwi katika kutaja mfululizo", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Tabia maalum isipokuwa "-", "#", ".", "/", "{" Na "}" hairuhusiwi katika kutaja mfululizo {0}", Target Details,Maelezo ya Lengo, {0} already has a Parent Procedure {1}.,{0} tayari ina Utaratibu wa Mzazi {1}., API,API, diff --git a/erpnext/translations/ta.csv b/erpnext/translations/ta.csv index 100f0e9300b4..8717b698d67a 100644 --- a/erpnext/translations/ta.csv +++ b/erpnext/translations/ta.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,தரமான கருத்து வார்ப Rules for applying different promotional schemes.,வெவ்வேறு விளம்பர திட்டங்களைப் பயன்படுத்துவதற்கான விதிகள்., Shift,ஷிப்ட், Show {0},{0 Show ஐக் காட்டு, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",""-", "#", ".", "/", "{" மற்றும் "}" தவிர சிறப்பு எழுத்துக்கள் பெயரிடும் தொடரில் அனுமதிக்கப்படவில்லை", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" மற்றும் "}" தவிர சிறப்பு எழுத்துக்கள் பெயரிடும் தொடரில் அனுமதிக்கப்படவில்லை {0}", Target Details,இலக்கு விவரங்கள், {0} already has a Parent Procedure {1}.,{0} ஏற்கனவே பெற்றோர் நடைமுறை {1 has ஐக் கொண்டுள்ளது., API,ஏபிஐ, diff --git a/erpnext/translations/te.csv b/erpnext/translations/te.csv index 047d07731e5b..4c24c101501c 100644 --- a/erpnext/translations/te.csv +++ b/erpnext/translations/te.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,నాణ్యమైన అభిప్రాయ మ Rules for applying different promotional schemes.,విభిన్న ప్రచార పథకాలను వర్తింపజేయడానికి నియమాలు., Shift,మార్పు, Show {0},{0 Show చూపించు, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",""-", "#", ".", "/", "{" మరియు "}" మినహా ప్రత్యేక అక్షరాలు పేరు పెట్టే సిరీస్‌లో అనుమతించబడవు", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" మరియు "}" మినహా ప్రత్యేక అక్షరాలు పేరు పెట్టే సిరీస్‌లో అనుమతించబడవు {0}", Target Details,లక్ష్య వివరాలు, {0} already has a Parent Procedure {1}.,{0} ఇప్పటికే తల్లిదండ్రుల విధానం {1 has ను కలిగి ఉంది., API,API, diff --git a/erpnext/translations/th.csv b/erpnext/translations/th.csv index 71233ec8fa01..cbbf1f0fc300 100644 --- a/erpnext/translations/th.csv +++ b/erpnext/translations/th.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,เทมเพลตข้อเสนอแนะค Rules for applying different promotional schemes.,กฎสำหรับการใช้รูปแบบการส่งเสริมการขายต่าง ๆ, Shift,เปลี่ยน, Show {0},แสดง {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","ห้ามใช้อักขระพิเศษยกเว้น "-", "#", ".", "/", "{" และ "}" ในซีรี่ส์", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","ห้ามใช้อักขระพิเศษยกเว้น "-", "#", ".", "/", "{" และ "}" ในซีรี่ส์ {0}", Target Details,รายละเอียดเป้าหมาย, {0} already has a Parent Procedure {1}.,{0} มี parent Parent {1} อยู่แล้ว, API,API, diff --git a/erpnext/translations/tr.csv b/erpnext/translations/tr.csv index 9e7ba4d1421e..f6ef6ea6aaa3 100644 --- a/erpnext/translations/tr.csv +++ b/erpnext/translations/tr.csv @@ -3537,7 +3537,7 @@ 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}",""-", "#", ".", "/", "{" Ve "}" 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, diff --git a/erpnext/translations/uk.csv b/erpnext/translations/uk.csv index 53e2df518cf3..ce6b231aea0c 100644 --- a/erpnext/translations/uk.csv +++ b/erpnext/translations/uk.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Шаблон зворотнього зв'язку Rules for applying different promotional schemes.,Правила застосування різних рекламних схем., Shift,Зміна, Show {0},Показати {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Спеціальні символи, окрім "-", "#", ".", "/", "{" Та "}", не дозволяються в іменуванні серій", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Спеціальні символи, окрім "-", "#", ".", "/", "{" Та "}", не дозволяються в іменуванні серій {0}", Target Details,Деталі цілі, {0} already has a Parent Procedure {1}.,{0} вже має батьківську процедуру {1}., API,API, diff --git a/erpnext/translations/ur.csv b/erpnext/translations/ur.csv index aaaef5895ffe..892d1719f058 100644 --- a/erpnext/translations/ur.csv +++ b/erpnext/translations/ur.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,کوالٹی فیڈ بیک ٹیمپلیٹ۔, Rules for applying different promotional schemes.,مختلف پروموشنل اسکیموں کو لاگو کرنے کے قواعد۔, Shift,شفٹ۔, Show {0},دکھائیں {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","-" ، "#" ، "." ، "/" ، "{" اور "}" سوائے خصوصی حروف کی نام بندی سیریز میں اجازت نہیں ہے, +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",{0} "-" ، "#" ، "." ، "/" ، "{" اور "}" سوائے خصوصی حروف کی نام بندی سیریز میں اجازت نہیں ہے, Target Details,ہدف کی تفصیلات۔, {0} already has a Parent Procedure {1}.,{0} پہلے سے ہی والدین کا طریقہ کار {1} ہے., API,API, diff --git a/erpnext/translations/uz.csv b/erpnext/translations/uz.csv index c983797aae1e..fcb9024e9c18 100644 --- a/erpnext/translations/uz.csv +++ b/erpnext/translations/uz.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Sifat bo'yicha fikrlar shablonlari, Rules for applying different promotional schemes.,Turli reklama sxemalarini qo'llash qoidalari., Shift,Shift, Show {0},{0} ni ko'rsatish, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",""-", "#", ".", "/", "{" Va "}" belgilaridan tashqari maxsus belgilarga ruxsat berilmaydi.", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" Va "}" belgilaridan tashqari maxsus belgilarga ruxsat berilmaydi {0}.", Target Details,Maqsad tafsilotlari, {0} already has a Parent Procedure {1}.,{0} allaqachon Ota-ona tartibiga ega {1}., API,API, diff --git a/erpnext/translations/vi.csv b/erpnext/translations/vi.csv index 03ff2ccc38d1..f3c54281f64b 100644 --- a/erpnext/translations/vi.csv +++ b/erpnext/translations/vi.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Mẫu phản hồi chất lượng, Rules for applying different promotional schemes.,Quy tắc áp dụng các chương trình khuyến mãi khác nhau., Shift,Ca, Show {0},Hiển thị {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","Các ký tự đặc biệt ngoại trừ "-", "#", ".", "/", "{" Và "}" không được phép trong chuỗi đặt tên", +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Các ký tự đặc biệt ngoại trừ "-", "#", ".", "/", "{" Và "}" không được phép trong chuỗi đặt tên {0}", Target Details,Chi tiết mục tiêu, {0} already has a Parent Procedure {1}.,{0} đã có Quy trình dành cho phụ huynh {1}., API,API, diff --git a/erpnext/translations/zh.csv b/erpnext/translations/zh.csv index 716f1f2f31aa..ae97b914224e 100644 --- a/erpnext/translations/zh.csv +++ b/erpnext/translations/zh.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,质量反馈模板, Rules for applying different promotional schemes.,适用不同促销计划的规则。, Shift,转移, Show {0},显示{0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",命名系列中不允许使用除“ - ”,“#”,“。”,“/”,“{”和“}”之外的特殊字符, +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",命名系列中不允许使用除“ - ”,“#”,“。”,“/”,“{”和“}”之外的特殊字符 {0}, Target Details,目标细节, {0} already has a Parent Procedure {1}.,{0}已有父程序{1}。, API,应用程序界面, diff --git a/erpnext/translations/zh_tw.csv b/erpnext/translations/zh_tw.csv index 1cc7d8773ee9..ad6013dd636f 100644 --- a/erpnext/translations/zh_tw.csv +++ b/erpnext/translations/zh_tw.csv @@ -3311,7 +3311,7 @@ Quality Feedback Template,質量反饋模板, Rules for applying different promotional schemes.,適用不同促銷計劃的規則。, Shift,轉移, Show {0},顯示{0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series",命名系列中不允許使用除“ - ”,“#”,“。”,“/”,“{”和“}”之外的特殊字符, +"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",命名系列中不允許使用除“ - ”,“#”,“。”,“/”,“{”和“}”之外的特殊字符 {0}, Target Details,目標細節, API,API, Annual,年刊, From 52ba2663026734b86bd6b8b35150788d543e6cde Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Mon, 23 Jan 2023 18:07:03 +0530 Subject: [PATCH 081/355] chore: fix translations (cherry picked from commit 4e6066f92937b1bbec57b7ffcd0a78db487fe618) --- erpnext/translations/af.csv | 2 +- erpnext/translations/am.csv | 2 +- erpnext/translations/ar.csv | 2 +- erpnext/translations/bg.csv | 2 +- erpnext/translations/bn.csv | 2 +- erpnext/translations/bs.csv | 2 +- erpnext/translations/ca.csv | 2 +- erpnext/translations/cs.csv | 2 +- erpnext/translations/da.csv | 2 +- erpnext/translations/de.csv | 2 +- erpnext/translations/el.csv | 2 +- erpnext/translations/es.csv | 2 +- erpnext/translations/et.csv | 2 +- erpnext/translations/fa.csv | 2 +- erpnext/translations/fi.csv | 2 +- erpnext/translations/fr.csv | 2 +- erpnext/translations/gu.csv | 2 +- erpnext/translations/he.csv | 2 +- erpnext/translations/hi.csv | 2 +- erpnext/translations/hr.csv | 2 +- erpnext/translations/hu.csv | 2 +- erpnext/translations/id.csv | 2 +- erpnext/translations/is.csv | 2 +- erpnext/translations/it.csv | 2 +- erpnext/translations/ja.csv | 2 +- erpnext/translations/km.csv | 2 +- erpnext/translations/kn.csv | 2 +- erpnext/translations/ko.csv | 2 +- erpnext/translations/ku.csv | 2 +- erpnext/translations/lo.csv | 2 +- erpnext/translations/lt.csv | 2 +- erpnext/translations/lv.csv | 2 +- erpnext/translations/mk.csv | 2 +- erpnext/translations/ml.csv | 2 +- erpnext/translations/mr.csv | 2 +- erpnext/translations/ms.csv | 2 +- erpnext/translations/my.csv | 2 +- erpnext/translations/nl.csv | 2 +- erpnext/translations/no.csv | 2 +- erpnext/translations/pl.csv | 2 +- erpnext/translations/ps.csv | 2 +- erpnext/translations/pt-BR.csv | 2 +- erpnext/translations/pt.csv | 2 +- erpnext/translations/ro.csv | 2 +- erpnext/translations/ru.csv | 2 +- erpnext/translations/rw.csv | 2 +- erpnext/translations/si.csv | 2 +- erpnext/translations/sk.csv | 2 +- erpnext/translations/sl.csv | 2 +- erpnext/translations/sq.csv | 2 +- erpnext/translations/sr.csv | 2 +- erpnext/translations/sv.csv | 2 +- erpnext/translations/sw.csv | 2 +- erpnext/translations/ta.csv | 2 +- erpnext/translations/te.csv | 2 +- erpnext/translations/th.csv | 2 +- erpnext/translations/tr.csv | 2 +- erpnext/translations/uk.csv | 2 +- erpnext/translations/ur.csv | 2 +- erpnext/translations/uz.csv | 2 +- erpnext/translations/vi.csv | 2 +- erpnext/translations/zh.csv | 2 +- erpnext/translations/zh_tw.csv | 2 +- 63 files changed, 63 insertions(+), 63 deletions(-) diff --git a/erpnext/translations/af.csv b/erpnext/translations/af.csv index c6cc2eae3bff..265e85c0f1d9 100644 --- a/erpnext/translations/af.csv +++ b/erpnext/translations/af.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kwaliteit-terugvoersjabloon, Rules for applying different promotional schemes.,Reëls vir die toepassing van verskillende promosieskemas., Shift,verskuiwing, Show {0},Wys {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Spesiale karakters behalwe "-", "#", ".", "/", "{" En "}" word nie toegelaat in die naamreekse nie {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Spesiale karakters behalwe "-", "#", ".", "/", "{{" En "}}" word nie toegelaat in die naamreekse nie {0}", Target Details,Teikenbesonderhede, {0} already has a Parent Procedure {1}.,{0} het reeds 'n ouerprosedure {1}., API,API, diff --git a/erpnext/translations/am.csv b/erpnext/translations/am.csv index 28d543313aca..d13140482130 100644 --- a/erpnext/translations/am.csv +++ b/erpnext/translations/am.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,የጥራት ግብረ መልስ አብነት።, Rules for applying different promotional schemes.,የተለያዩ የማስተዋወቂያ ዘዴዎችን ለመተግበር ህጎች።, Shift,ቀይር, Show {0},አሳይ {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",ከ "-" ፣ "#" ፣ "፣" ፣ "/" ፣ "{" እና "}" በስተቀር ልዩ ቁምፊዎች ከመለያ መሰየሚያ አይፈቀድም {0}, +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",ከ "-" ፣ "#" ፣ "፣" ፣ "/" ፣ "{{" እና "}}" በስተቀር ልዩ ቁምፊዎች ከመለያ መሰየሚያ አይፈቀድም {0}, Target Details,የ Detailsላማ ዝርዝሮች።, {0} already has a Parent Procedure {1}.,{0} ቀድሞውኑ የወላጅ አሰራር ሂደት አለው {1}።, API,ኤ ፒ አይ, diff --git a/erpnext/translations/ar.csv b/erpnext/translations/ar.csv index e2cf68caca74..c0da1c4d76ee 100644 --- a/erpnext/translations/ar.csv +++ b/erpnext/translations/ar.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,قالب ملاحظات الجودة, Rules for applying different promotional schemes.,قواعد تطبيق المخططات الترويجية المختلفة., Shift,تحول, Show {0},عرض {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",{0} الأحرف الخاصة باستثناء "-" ، "#" ، "." ، "/" ، "{" و "}" غير مسموح في سلسلة التسمية, +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",{0} الأحرف الخاصة باستثناء "-" ، "#" ، "." ، "/" ، "{{" و "}}" غير مسموح في سلسلة التسمية, Target Details,تفاصيل الهدف, {0} already has a Parent Procedure {1}.,{0} يحتوي بالفعل على إجراء الأصل {1}., API,API, diff --git a/erpnext/translations/bg.csv b/erpnext/translations/bg.csv index b7af7ee23b47..ac6dc7851b22 100644 --- a/erpnext/translations/bg.csv +++ b/erpnext/translations/bg.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Качествен обратен шаблон, Rules for applying different promotional schemes.,Правила за прилагане на различни промоционални схеми., Shift,изместване, Show {0},Показване на {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Специални символи, с изключение на "-", "#", ".", "/", "{" И "}" не са позволени в именуването на серии {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Специални символи, с изключение на "-", "#", ".", "/", "{{" И "}}" не са позволени в именуването на серии {0}", Target Details,Детайли за целта, {0} already has a Parent Procedure {1}.,{0} вече има родителска процедура {1}., API,API, diff --git a/erpnext/translations/bn.csv b/erpnext/translations/bn.csv index dcfb3e8c5ae0..52f7b1c593ae 100644 --- a/erpnext/translations/bn.csv +++ b/erpnext/translations/bn.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,গুণমান প্রতিক্রিয় Rules for applying different promotional schemes.,বিভিন্ন প্রচারমূলক স্কিম প্রয়োগ করার নিয়ম।, Shift,পরিবর্তন, Show {0},{0} দেখান, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","নামকরণ সিরিজে "-", "#", "।", "/", "{" এবং "}" ব্যতীত বিশেষ অক্ষর অনুমোদিত নয় {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","নামকরণ সিরিজে "-", "#", "।", "/", "{{" এবং "}}" ব্যতীত বিশেষ অক্ষর অনুমোদিত নয় {0}", Target Details,টার্গেটের বিশদ, {0} already has a Parent Procedure {1}.,{0} ইতিমধ্যে একটি মূল পদ্ধতি আছে {1}।, API,এপিআই, diff --git a/erpnext/translations/bs.csv b/erpnext/translations/bs.csv index e9d13dcf056d..267434f480a7 100644 --- a/erpnext/translations/bs.csv +++ b/erpnext/translations/bs.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Predložak kvalitetne povratne informacije, Rules for applying different promotional schemes.,Pravila za primjenu različitih promotivnih shema., Shift,Shift, Show {0},Prikaži {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Posebni znakovi osim "-", "#", ".", "/", "{" I "}" nisu dozvoljeni u imenovanju serija {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Posebni znakovi osim "-", "#", ".", "/", "{{" I "}}" nisu dozvoljeni u imenovanju serija {0}", Target Details,Detalji cilja, {0} already has a Parent Procedure {1}.,{0} već ima roditeljsku proceduru {1}., API,API, diff --git a/erpnext/translations/ca.csv b/erpnext/translations/ca.csv index a1918b04eabf..d8c2ef68e6e8 100644 --- a/erpnext/translations/ca.csv +++ b/erpnext/translations/ca.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Plantilla de comentaris de qualitat, Rules for applying different promotional schemes.,Normes per aplicar diferents règims promocionals., Shift,Majúscules, Show {0},Mostra {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caràcters especials, excepte "-", "#", ".", "/", "{" I "}" no estan permesos en nomenar sèries {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Caràcters especials, excepte "-", "#", ".", "/", "{{" I "}}" no estan permesos en nomenar sèries {0}", Target Details,Detalls de l'objectiu, {0} already has a Parent Procedure {1}.,{0} ja té un procediment progenitor {1}., API,API, diff --git a/erpnext/translations/cs.csv b/erpnext/translations/cs.csv index 33f242d25b9f..7d570bbdd040 100644 --- a/erpnext/translations/cs.csv +++ b/erpnext/translations/cs.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Šablona zpětné vazby kvality, Rules for applying different promotional schemes.,Pravidla pro uplatňování různých propagačních programů., Shift,Posun, Show {0},Zobrazit {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Zvláštní znaky kromě "-", "#", ".", "/", "{" A "}" nejsou v názvových řadách povoleny {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Zvláštní znaky kromě "-", "#", ".", "/", "{{" A "}}" nejsou v názvových řadách povoleny {0}", Target Details,Podrobnosti o cíli, {0} already has a Parent Procedure {1}.,{0} již má rodičovský postup {1}., API,API, diff --git a/erpnext/translations/da.csv b/erpnext/translations/da.csv index ca6bb64f24da..16b2e878e042 100644 --- a/erpnext/translations/da.csv +++ b/erpnext/translations/da.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kvalitetsfeedback-skabelon, Rules for applying different promotional schemes.,Regler for anvendelse af forskellige salgsfremmende ordninger., Shift,Flytte, Show {0},Vis {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Specialtegn undtagen "-", "#", ".", "/", "{" Og "}" er ikke tilladt i navngivningsserier {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Specialtegn undtagen "-", "#", ".", "/", "{{" Og "}}" er ikke tilladt i navngivningsserier {0}", Target Details,Måldetaljer, {0} already has a Parent Procedure {1}.,{0} har allerede en overordnet procedure {1}., API,API, diff --git a/erpnext/translations/de.csv b/erpnext/translations/de.csv index 75c73d6597b8..95063d7957be 100644 --- a/erpnext/translations/de.csv +++ b/erpnext/translations/de.csv @@ -3546,7 +3546,7 @@ Quality Feedback Template,Qualitäts-Feedback-Vorlage, Rules for applying different promotional schemes.,Regeln für die Anwendung verschiedener Werbemaßnahmen., Shift,Verschiebung, Show {0},{0} anzeigen, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Sonderzeichen außer "-", "#", ".", "/", "{" Und "}" sind bei der Benennung von Serien nicht zulässig {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Sonderzeichen außer "-", "#", ".", "/", "{{" Und "}}" sind bei der Benennung von Serien nicht zulässig {0}", Target Details,Zieldetails, {0} already has a Parent Procedure {1}.,{0} hat bereits eine übergeordnete Prozedur {1}., API,API, diff --git a/erpnext/translations/el.csv b/erpnext/translations/el.csv index 7ba3e5dc676f..06b80603e637 100644 --- a/erpnext/translations/el.csv +++ b/erpnext/translations/el.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Πρότυπο σχολιασμού ποιότητας Rules for applying different promotional schemes.,Κανόνες εφαρμογής διαφορετικών προγραμμάτων προώθησης., Shift,Βάρδια, Show {0},Εμφάνιση {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Ειδικοί χαρακτήρες εκτός από "-", "#", ".", "/", "" Και "}" δεν επιτρέπονται στη σειρά ονομασίας {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Ειδικοί χαρακτήρες εκτός από "-", "#", ".", "/", "{" Και "}}" δεν επιτρέπονται στη σειρά ονομασίας {0}", Target Details,Στοιχεία στόχου, {0} already has a Parent Procedure {1}.,{0} έχει ήδη μια διαδικασία γονέα {1}., API,API, diff --git a/erpnext/translations/es.csv b/erpnext/translations/es.csv index c7097f193601..b216b868bbdb 100644 --- a/erpnext/translations/es.csv +++ b/erpnext/translations/es.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Plantilla de comentarios de calidad, Rules for applying different promotional schemes.,Reglas para aplicar diferentes esquemas promocionales., Shift,Cambio, Show {0},Mostrar {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caracteres especiales excepto "-", "#", ".", "/", "{" Y "}" no están permitidos en las series de nombres {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Caracteres especiales excepto "-", "#", ".", "/", "{{" Y "}}" no están permitidos en las series de nombres {0}", Target Details,Detalles del objetivo, {0} already has a Parent Procedure {1}.,{0} ya tiene un Procedimiento principal {1}., API,API, diff --git a/erpnext/translations/et.csv b/erpnext/translations/et.csv index 36476961325a..5d67d81b7945 100644 --- a/erpnext/translations/et.csv +++ b/erpnext/translations/et.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kvaliteetse tagasiside mall, Rules for applying different promotional schemes.,Erinevate reklaamiskeemide rakenduseeskirjad., Shift,Vahetus, Show {0},Kuva {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Erimärgid, välja arvatud "-", "#", ".", "/", "{" Ja "}" pole sarjade nimetamisel lubatud {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Erimärgid, välja arvatud "-", "#", ".", "/", "{{" Ja "}}" pole sarjade nimetamisel lubatud {0}", Target Details,Sihtkoha üksikasjad, {0} already has a Parent Procedure {1}.,{0} juba on vanemamenetlus {1}., API,API, diff --git a/erpnext/translations/fa.csv b/erpnext/translations/fa.csv index 2f6627b87a66..040034d09ec6 100644 --- a/erpnext/translations/fa.csv +++ b/erpnext/translations/fa.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,الگوی بازخورد کیفیت, Rules for applying different promotional schemes.,قوانین استفاده از طرح های تبلیغاتی مختلف., Shift,تغییر مکان, Show {0},نمایش {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",{0} کاراکترهای خاص به جز "-" ، "#" ، "." ، "/" ، "{" و "}" در سریال نامگذاری مجاز نیستند, +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",{0} کاراکترهای خاص به جز "-" ، "#" ، "." ، "/" ، "{{" و "}}" در سریال نامگذاری مجاز نیستند, Target Details,جزئیات هدف, {0} already has a Parent Procedure {1}.,{0} در حال حاضر یک روش والدین {1} دارد., API,API, diff --git a/erpnext/translations/fi.csv b/erpnext/translations/fi.csv index 4b0326c83ed9..27ea3b8dd45d 100644 --- a/erpnext/translations/fi.csv +++ b/erpnext/translations/fi.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Laadun palautteen malli, Rules for applying different promotional schemes.,Säännöt erilaisten myynninedistämisjärjestelmien soveltamisesta., Shift,Siirtää, Show {0},Näytä {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Erikoismerkit paitsi "-", "#", ".", "/", "{" Ja "}" eivät ole sallittuja nimeämissarjoissa {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Erikoismerkit paitsi "-", "#", ".", "/", "{{" Ja "}}" eivät ole sallittuja nimeämissarjoissa {0}", Target Details,Kohteen yksityiskohdat, {0} already has a Parent Procedure {1}.,{0}: llä on jo vanhempainmenettely {1}., API,API, diff --git a/erpnext/translations/fr.csv b/erpnext/translations/fr.csv index 5646191cb029..8367afd3312b 100644 --- a/erpnext/translations/fr.csv +++ b/erpnext/translations/fr.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Modèle de commentaires sur la qualité, Rules for applying different promotional schemes.,Règles d'application de différents programmes promotionnels., Shift,Décalage, Show {0},Montrer {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caractères spéciaux sauf "-", "#", ".", "/", "{" Et "}" non autorisés dans les séries de nommage {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Caractères spéciaux sauf "-", "#", ".", "/", "{{" Et "}}" non autorisés dans les séries de nommage {0}", Target Details,Détails de la cible, {0} already has a Parent Procedure {1}.,{0} a déjà une procédure parent {1}., API,API, diff --git a/erpnext/translations/gu.csv b/erpnext/translations/gu.csv index 964c01c6b60c..97adac94db16 100644 --- a/erpnext/translations/gu.csv +++ b/erpnext/translations/gu.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,ગુણવત્તા પ્રતિસાદ Temp Rules for applying different promotional schemes.,વિવિધ પ્રમોશનલ યોજનાઓ લાગુ કરવાના નિયમો., Shift,પાળી, Show {0},બતાવો {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" અને "}" સિવાયના વિશેષ અક્ષરો નામકરણ શ્રેણીમાં મંજૂરી નથી {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",""-", "#", ".", "/", "{{" અને "}}" સિવાયના વિશેષ અક્ષરો નામકરણ શ્રેણીમાં મંજૂરી નથી {0}", Target Details,લક્ષ્યાંક વિગતો, {0} already has a Parent Procedure {1}.,{0} પાસે પહેલેથી જ પિતૃ કાર્યવાહી છે {1}., API,API, diff --git a/erpnext/translations/he.csv b/erpnext/translations/he.csv index c5b7adb258d5..22b252261fd5 100644 --- a/erpnext/translations/he.csv +++ b/erpnext/translations/he.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,תבנית משוב איכותית, Rules for applying different promotional schemes.,כללים ליישום תוכניות קידום מכירות שונות., Shift,מִשׁמֶרֶת, Show {0},הצג את {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","{0} תווים מיוחדים למעט "-", "#", ".", "/", "{" ו- "}" אינם מורשים בסדרות שמות", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","{0} תווים מיוחדים למעט "-", "#", ".", "/", "{{" ו- "}}" אינם מורשים בסדרות שמות", Target Details,פרטי יעד, {0} already has a Parent Procedure {1}.,{0} כבר יש נוהל הורים {1}., API,ממשק API, diff --git a/erpnext/translations/hi.csv b/erpnext/translations/hi.csv index 247ad694e3da..ca41cf3d9f44 100644 --- a/erpnext/translations/hi.csv +++ b/erpnext/translations/hi.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,गुणवत्ता प्रतिक्रि Rules for applying different promotional schemes.,विभिन्न प्रचार योजनाओं को लागू करने के लिए नियम।, Shift,खिसक जाना, Show {0},{0} दिखाएं, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", "।", "/", "{" और "}" को छोड़कर विशेष वर्ण श्रृंखला में अनुमति नहीं है {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",""-", "#", "।", "/", "{{" और "}}" को छोड़कर विशेष वर्ण श्रृंखला {0} में अनुमति नहीं है", Target Details,लक्ष्य विवरण, {0} already has a Parent Procedure {1}.,{0} पहले से ही एक पेरेंट प्रोसीजर {1} है।, API,एपीआई, diff --git a/erpnext/translations/hr.csv b/erpnext/translations/hr.csv index 9f0ff0bbf85d..319b80b7c47e 100644 --- a/erpnext/translations/hr.csv +++ b/erpnext/translations/hr.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Predložak povratne informacije o kvaliteti, Rules for applying different promotional schemes.,Pravila za primjenu različitih promotivnih shema., Shift,smjena, Show {0},Prikaži {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Posebni znakovi osim "-", "#", ".", "/", "{" I "}" nisu dopušteni u imenovanju serija {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Posebni znakovi osim "-", "#", ".", "/", "{{" I "}}" nisu dopušteni u imenovanju serija {0}", Target Details,Pojedinosti cilja, {0} already has a Parent Procedure {1}.,{0} već ima roditeljski postupak {1}., API,API, diff --git a/erpnext/translations/hu.csv b/erpnext/translations/hu.csv index 248cee97a8ef..06647281cd60 100644 --- a/erpnext/translations/hu.csv +++ b/erpnext/translations/hu.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Minőségi visszajelző sablon, Rules for applying different promotional schemes.,Különböző promóciós rendszerek alkalmazásának szabályai., Shift,Váltás, Show {0},Mutasd {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Speciális karakterek, kivéve "-", "#", ".", "/", "{" És "}", a sorozatok elnevezése nem megengedett {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Speciális karakterek, kivéve "-", "#", ".", "/", "{{" És "}}", a sorozatok elnevezése nem megengedett {0}", Target Details,Cél részletei, {0} already has a Parent Procedure {1}.,A (z) {0} már rendelkezik szülői eljárással {1}., API,API, diff --git a/erpnext/translations/id.csv b/erpnext/translations/id.csv index 2108184a9065..1e507470239c 100644 --- a/erpnext/translations/id.csv +++ b/erpnext/translations/id.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Template Umpan Balik Kualitas, Rules for applying different promotional schemes.,Aturan untuk menerapkan berbagai skema promosi., Shift,Bergeser, Show {0},Tampilkan {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Karakter Khusus kecuali "-", "#", ".", "/", "{" Dan "}" tidak diizinkan dalam rangkaian penamaan {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Karakter Khusus kecuali "-", "#", ".", "/", "{{" Dan "}}" tidak diizinkan dalam rangkaian penamaan {0}", Target Details,Detail Target, {0} already has a Parent Procedure {1}.,{0} sudah memiliki Prosedur Induk {1}., API,API, diff --git a/erpnext/translations/is.csv b/erpnext/translations/is.csv index d31e279ffca8..c20c21eef891 100644 --- a/erpnext/translations/is.csv +++ b/erpnext/translations/is.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Sniðmát fyrir gæði gæða, Rules for applying different promotional schemes.,Reglur um beitingu mismunandi kynningarkerfa., Shift,Vakt, Show {0},Sýna {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Sérstafir nema "-", "#", ".", "/", "{" Og "}" ekki leyfðar í nafngiftiröð {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Sérstafir nema "-", "#", ".", "/", "{{" Og "}}" ekki leyfðar í nafngiftiröð {0}", Target Details,Upplýsingar um markmið, {0} already has a Parent Procedure {1}.,{0} er þegar með foreldraferli {1}., API,API, diff --git a/erpnext/translations/it.csv b/erpnext/translations/it.csv index 23379d83cd7a..3d15d5594deb 100644 --- a/erpnext/translations/it.csv +++ b/erpnext/translations/it.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Modello di feedback sulla qualità, Rules for applying different promotional schemes.,Regole per l'applicazione di diversi schemi promozionali., Shift,Cambio, Show {0},Mostra {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caratteri speciali tranne "-", "#", ".", "/", "{" E "}" non consentiti nelle serie di nomi {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Caratteri speciali tranne "-", "#", ".", "/", "{{" E "}}" non consentiti nelle serie di nomi {0}", Target Details,Dettagli target, {0} already has a Parent Procedure {1}.,{0} ha già una procedura padre {1}., API,API, diff --git a/erpnext/translations/ja.csv b/erpnext/translations/ja.csv index a7936e968940..a11a9a126a91 100644 --- a/erpnext/translations/ja.csv +++ b/erpnext/translations/ja.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,品質フィードバックテンプレート, Rules for applying different promotional schemes.,さまざまなプロモーションスキームを適用するための規則。, Shift,シフト, Show {0},{0}を表示, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}"," - "、 "#"、 "。"、 "/"、 "{"、および "}"以外の特殊文字は、一連の名前付けでは使用できません {0}, +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}"," - "、 "#"、 "。"、 "/"、 "{{"、および "}}"以外の特殊文字は、一連の名前付けでは使用できません {0}, Target Details,ターゲット詳細, {0} already has a Parent Procedure {1}.,{0}にはすでに親プロシージャー{1}があります。, API,API, diff --git a/erpnext/translations/km.csv b/erpnext/translations/km.csv index 46f1440197aa..bd70595a7b6d 100644 --- a/erpnext/translations/km.csv +++ b/erpnext/translations/km.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,គំរូមតិយោបល់គុណភាព Rules for applying different promotional schemes.,វិធានសម្រាប់អនុវត្តគម្រោងផ្សព្វផ្សាយផ្សេងៗគ្នា។, Shift,ប្តូរ។, Show {0},បង្ហាញ {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","តួអក្សរពិសេសលើកលែងតែ "-", "#", "។ ", "/", "{" និង "}" មិនត្រូវបានអនុញ្ញាតក្នុងស៊េរីដាក់ឈ្មោះ {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","តួអក្សរពិសេសលើកលែងតែ "-", "#", "។ ", "/", "{{" និង "}}" មិនត្រូវបានអនុញ្ញាតក្នុងស៊េរីដាក់ឈ្មោះ {0}", Target Details,ព័ត៌មានលម្អិតគោលដៅ។, {0} already has a Parent Procedure {1}.,{0} មាននីតិវិធីឪពុកម្តាយរួចហើយ {1} ។, API,API, diff --git a/erpnext/translations/kn.csv b/erpnext/translations/kn.csv index 5700af925829..7572a09a0868 100644 --- a/erpnext/translations/kn.csv +++ b/erpnext/translations/kn.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,ಗುಣಮಟ್ಟದ ಪ್ರತಿಕ್ರಿ Rules for applying different promotional schemes.,ವಿಭಿನ್ನ ಪ್ರಚಾರ ಯೋಜನೆಗಳನ್ನು ಅನ್ವಯಿಸುವ ನಿಯಮಗಳು., Shift,ಶಿಫ್ಟ್, Show {0},{0} ತೋರಿಸು, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" ಮತ್ತು "}" ಹೊರತುಪಡಿಸಿ ವಿಶೇಷ ಅಕ್ಷರಗಳನ್ನು ಹೆಸರಿಸುವ ಸರಣಿಯಲ್ಲಿ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",""-", "#", ".", "/", "{{" ಮತ್ತು "}}" ಹೊರತುಪಡಿಸಿ ವಿಶೇಷ ಅಕ್ಷರಗಳನ್ನು ಹೆಸರಿಸುವ ಸರಣಿಯಲ್ಲಿ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ {0}", Target Details,ಗುರಿ ವಿವರಗಳು, {0} already has a Parent Procedure {1}.,{0} ಈಗಾಗಲೇ ಪೋಷಕ ವಿಧಾನವನ್ನು ಹೊಂದಿದೆ {1}., API,API, diff --git a/erpnext/translations/ko.csv b/erpnext/translations/ko.csv index e66b07998219..b873b73b9cd7 100644 --- a/erpnext/translations/ko.csv +++ b/erpnext/translations/ko.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,품질 피드백 템플릿, Rules for applying different promotional schemes.,다양한 홍보 계획을 적용하기위한 규칙., Shift,시프트, Show {0},{0} 표시, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","이름 계열에 허용되지 않는 "-", "#", ".", "/", "{"및 "}"을 제외한 특수 문자 {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","이름 계열에 허용되지 않는 "-", "#", ".", "/", "{{"및 "}}"을 제외한 특수 문자 {0}", Target Details,대상 세부 정보, {0} already has a Parent Procedure {1}.,{0}에 이미 상위 절차 {1}이 있습니다., API,API, diff --git a/erpnext/translations/ku.csv b/erpnext/translations/ku.csv index 41f7d8366487..89e12c070b5c 100644 --- a/erpnext/translations/ku.csv +++ b/erpnext/translations/ku.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Feedablonê nerazîbûna kalîteyê, Rules for applying different promotional schemes.,Qanûnên ji bo bicihanîna nexşeyên cûda yên danasînê, Shift,Tarloqî, Show {0},Show {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Di tîpa navnasî de ji bilî "-", "#", ".", "/", "{" Û "}" tîpên Taybet {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Di tîpa navnasî de ji bilî "-", "#", ".", "/", "{{" Û "}}" tîpên Taybet {0}", Target Details,Hûrgulên armancê, {0} already has a Parent Procedure {1}.,{0} ji berê ve heye Parent Procedure {1}., API,API, diff --git a/erpnext/translations/lo.csv b/erpnext/translations/lo.csv index 728f9ffc9ca3..778a59b3c2e2 100644 --- a/erpnext/translations/lo.csv +++ b/erpnext/translations/lo.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,ແມ່ແບບ ຄຳ ຕິຊົມຄຸນນ Rules for applying different promotional schemes.,ກົດລະບຽບໃນການ ນຳ ໃຊ້ແຜນການໂຄສະນາທີ່ແຕກຕ່າງກັນ., Shift,ປ່ຽນ, Show {0},ສະແດງ {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","ຕົວລະຄອນພິເສດຍົກເວັ້ນ "-", "#", ".", "/", "{" ແລະ "}" ບໍ່ໄດ້ຖືກອະນຸຍາດໃນຊຸດຊື່ {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","ຕົວລະຄອນພິເສດຍົກເວັ້ນ "-", "#", ".", "/", "{{" ແລະ "}}" ບໍ່ໄດ້ຖືກອະນຸຍາດໃນຊຸດຊື່ {0}", Target Details,ລາຍລະອຽດເປົ້າ ໝາຍ, {0} already has a Parent Procedure {1}.,{0} ມີຂັ້ນຕອນການເປັນພໍ່ແມ່ {1} ແລ້ວ., API,API, diff --git a/erpnext/translations/lt.csv b/erpnext/translations/lt.csv index 0fe7f859020c..4721ce43ff38 100644 --- a/erpnext/translations/lt.csv +++ b/erpnext/translations/lt.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kokybės atsiliepimų šablonas, Rules for applying different promotional schemes.,Skirtingų reklamos schemų taikymo taisyklės., Shift,Pamaina, Show {0},Rodyti {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Specialieji simboliai, išskyrus „-“, „#“, „.“, „/“, „{“ Ir „}“, neleidžiami įvardyti serijomis {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Specialieji simboliai, išskyrus "-", "#", "।", "/", "{{" Ir "}}", neleidžiami įvardyti serijomis {0}", Target Details,Tikslinė informacija, {0} already has a Parent Procedure {1}.,{0} jau turi tėvų procedūrą {1}., API,API, diff --git a/erpnext/translations/lv.csv b/erpnext/translations/lv.csv index 87a3e369bcf4..b8499b28c127 100644 --- a/erpnext/translations/lv.csv +++ b/erpnext/translations/lv.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kvalitatīvas atsauksmes veidne, Rules for applying different promotional schemes.,Noteikumi dažādu reklāmas shēmu piemērošanai., Shift,Maiņa, Show {0},Rādīt {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Speciālās rakstzīmes, izņemot "-", "#", ".", "/", "{" Un "}", kas nav atļautas nosaukuma sērijās {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Speciālās rakstzīmes, izņemot "-", "#", ".", "/", "{{" Un "}}", kas nav atļautas nosaukuma sērijās {0}", Target Details,Mērķa informācija, {0} already has a Parent Procedure {1}.,{0} jau ir vecāku procedūra {1}., API,API, diff --git a/erpnext/translations/mk.csv b/erpnext/translations/mk.csv index 40b8d2637e49..8ecae03adc7e 100644 --- a/erpnext/translations/mk.csv +++ b/erpnext/translations/mk.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Шаблон за повратни информаци Rules for applying different promotional schemes.,Правила за примена на различни промотивни шеми., Shift,Смена, Show {0},Покажи {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Не се дозволени специјални карактери освен "-", "#", ".", "/", "{" И "}" во сериите за именување {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Не се дозволени специјални карактери освен "-", "#", ".", "/", "{{" И "}}" во сериите за именување {0}", Target Details,Цели детали, {0} already has a Parent Procedure {1}.,{0} веќе има Матична постапка {1}., API,API, diff --git a/erpnext/translations/ml.csv b/erpnext/translations/ml.csv index 14af878e80be..f649e6c83b7f 100644 --- a/erpnext/translations/ml.csv +++ b/erpnext/translations/ml.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,ഗുണനിലവാരമുള്ള ഫീഡ Rules for applying different promotional schemes.,വ്യത്യസ്ത പ്രമോഷണൽ സ്കീമുകൾ പ്രയോഗിക്കുന്നതിനുള്ള നിയമങ്ങൾ., Shift,ഷിഫ്റ്റ്, Show {0},{0} കാണിക്കുക, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{", "}" എന്നിവ ഒഴികെയുള്ള പ്രത്യേക പ്രതീകങ്ങൾ നാമകരണ ശ്രേണിയിൽ അനുവദനീയമല്ല {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",""-", "#", ".", "/", "{{", "}}" എന്നിവ ഒഴികെയുള്ള പ്രത്യേക പ്രതീകങ്ങൾ നാമകരണ ശ്രേണിയിൽ അനുവദനീയമല്ല {0}", Target Details,ടാർഗെറ്റ് വിശദാംശങ്ങൾ, {0} already has a Parent Procedure {1}.,{0} ന് ഇതിനകം ഒരു രക്ഷാകർതൃ നടപടിക്രമം ഉണ്ട് {1}., API,API, diff --git a/erpnext/translations/mr.csv b/erpnext/translations/mr.csv index 0d9fffa78d01..38effc1b15a5 100644 --- a/erpnext/translations/mr.csv +++ b/erpnext/translations/mr.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,गुणवत्ता अभिप्राय ट Rules for applying different promotional schemes.,वेगवेगळ्या जाहिरात योजना लागू करण्याचे नियम., Shift,शिफ्ट, Show {0},दर्शवा {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" आणि "}" वगळता विशिष्ट वर्णांना नामांकन मालिकेमध्ये परवानगी नाही {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",""-", "#", ".", "/", "{{" आणि "}}" वगळता विशिष्ट वर्णांना नामांकन मालिकेमध्ये परवानगी नाही {0}", Target Details,लक्ष्य तपशील, {0} already has a Parent Procedure {1}.,{0} कडे आधीपासूनच पालक प्रक्रिया आहे {1}., API,API, diff --git a/erpnext/translations/ms.csv b/erpnext/translations/ms.csv index 8ca77585c2ee..4ee650b10462 100644 --- a/erpnext/translations/ms.csv +++ b/erpnext/translations/ms.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Template Maklum Balas Kualiti, Rules for applying different promotional schemes.,Kaedah untuk memohon skim promosi yang berbeza., Shift,Shift, Show {0},Tunjukkan {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Watak Khas kecuali "-", "#", ".", "/", "{" Dan "}" tidak dibenarkan dalam siri penamaan {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Watak Khas kecuali "-", "#", ".", "/", "{{" Dan "}}" tidak dibenarkan dalam siri penamaan {0}", Target Details,Butiran Sasaran, {0} already has a Parent Procedure {1}.,{0} sudah mempunyai Tatacara Ibu Bapa {1}., API,API, diff --git a/erpnext/translations/my.csv b/erpnext/translations/my.csv index 0903b7195014..f0d216bbc73f 100644 --- a/erpnext/translations/my.csv +++ b/erpnext/translations/my.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,အရည်အသွေးတုံ့ပြန်ခ Rules for applying different promotional schemes.,ကွဲပြားခြားနားသောပရိုမိုးရှင်းအစီအစဉ်များလျှောက်ထားမှုအတွက်စည်းကမ်းများ။, Shift,အဆိုင်း, Show {0},Show ကို {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","မှလွဲ. အထူးဇာတ်ကောင် "-" "။ ", "#", "/", "{" နှင့် "}" စီးရီးနာမည်အတွက်ခွင့်မပြု {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","မှလွဲ. အထူးဇာတ်ကောင် "-" "။ ", "#", "/", "{{" နှင့် "}}" စီးရီးနာမည်အတွက်ခွင့်မပြု {0}", Target Details,ပစ်မှတ်အသေးစိတ်, {0} already has a Parent Procedure {1}.,{0} ပြီးသားမိဘလုပ်ထုံးလုပ်နည်း {1} ရှိပါတယ်။, API,API ကို, diff --git a/erpnext/translations/nl.csv b/erpnext/translations/nl.csv index fe1dccb330f2..6ec43a059253 100644 --- a/erpnext/translations/nl.csv +++ b/erpnext/translations/nl.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kwaliteitsfeedbacksjabloon, Rules for applying different promotional schemes.,Regels voor het toepassen van verschillende promotieregelingen., Shift,Verschuiving, Show {0},Toon {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Speciale tekens behalve "-", "#", ".", "/", "{" En "}" niet toegestaan in naamgevingsreeks {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Speciale tekens behalve "-", "#", ".", "/", "{{" En "}}" niet toegestaan in naamgevingsreeks {0}", Target Details,Doelgegevens, {0} already has a Parent Procedure {1}.,{0} heeft al een ouderprocedure {1}., API,API, diff --git a/erpnext/translations/no.csv b/erpnext/translations/no.csv index 56fc407b9c63..df87e81db9ff 100644 --- a/erpnext/translations/no.csv +++ b/erpnext/translations/no.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kvalitet Tilbakemelding Mal, Rules for applying different promotional schemes.,Regler for anvendelse av forskjellige kampanjer., Shift,Skifte, Show {0},Vis {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Spesialtegn unntatt "-", "#", ".", "/", "{" Og "}" ikke tillatt i navneserier {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Spesialtegn unntatt "-", "#", ".", "/", "{{" Og "}}" ikke tillatt i navneserier {0}", Target Details,Måldetaljer, {0} already has a Parent Procedure {1}.,{0} har allerede en foreldreprosedyre {1}., API,API, diff --git a/erpnext/translations/pl.csv b/erpnext/translations/pl.csv index 8589867bb418..be81e29d7f17 100644 --- a/erpnext/translations/pl.csv +++ b/erpnext/translations/pl.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Szablon opinii o jakości, Rules for applying different promotional schemes.,Zasady stosowania różnych programów promocyjnych., Shift,Przesunięcie, Show {0},Pokaż {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Znaki specjalne z wyjątkiem „-”, „#”, „.”, „/”, „{” I „}” niedozwolone w serii nazw {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Znaki specjalne z wyjątkiem "-", "#", "।", "/", "{{" I "}}" niedozwolone w serii nazw {0}", Target Details,Szczegóły celu, {0} already has a Parent Procedure {1}.,{0} ma już procedurę nadrzędną {1}., API,API, diff --git a/erpnext/translations/ps.csv b/erpnext/translations/ps.csv index 8ff55dc31757..68add60cc93d 100644 --- a/erpnext/translations/ps.csv +++ b/erpnext/translations/ps.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,د کیفیت فیډبیک ټیمپلیټ, Rules for applying different promotional schemes.,د مختلف پروموشنل سکیمونو پلي کولو قواعد., Shift,شفټ, Show {0},ښودل {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",{0} ځانګړي نومونه د "-" ، "#" ، "." ، "/" ، "{" او "}" نوم لیکلو کې اجازه نه لري, +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",{0} ځانګړي نومونه د "-" ، "#" ، "." ، "/" ، "{{" او "}}" نوم لیکلو کې اجازه نه لري, Target Details,د هدف توضیحات, {0} already has a Parent Procedure {1}.,{0} د مخه د والدین پروسیجر {1} لري., API,API, diff --git a/erpnext/translations/pt-BR.csv b/erpnext/translations/pt-BR.csv index 4d8730f522ab..cc1c6af91374 100644 --- a/erpnext/translations/pt-BR.csv +++ b/erpnext/translations/pt-BR.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Modelo de Feedback de Qualidade, Rules for applying different promotional schemes.,Regras para aplicar diferentes esquemas promocionais., Shift,Mudança, Show {0},Mostrar {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caracteres especiais, exceto "-", "#", ".", "/", "{" e "}" não permitidos na série de nomenclatura {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Caracteres especiais, exceto "-", "#", ".", "/", "{{" e "}}" não permitidos na série de nomenclatura {0}", Target Details,Detalhes do Alvo, {0} already has a Parent Procedure {1}.,{0} já tem um procedimento pai {1}., API,API, diff --git a/erpnext/translations/pt.csv b/erpnext/translations/pt.csv index 991f8ed08269..43bf227e673e 100644 --- a/erpnext/translations/pt.csv +++ b/erpnext/translations/pt.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Modelo de Feedback de Qualidade, Rules for applying different promotional schemes.,Regras para aplicar diferentes esquemas promocionais., Shift,Mudança, Show {0},Mostrar {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caracteres especiais, exceto "-", "#", ".", "/", "{" E "}" não permitidos na série de nomenclatura {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Caracteres especiais, exceto "-", "#", ".", "/", "{{" E "}}" não permitidos na série de nomenclatura {0}", Target Details,Detalhes do Alvo, {0} already has a Parent Procedure {1}.,{0} já tem um procedimento pai {1}., API,API, diff --git a/erpnext/translations/ro.csv b/erpnext/translations/ro.csv index 0a2b24e8101b..3aab431cdd8d 100644 --- a/erpnext/translations/ro.csv +++ b/erpnext/translations/ro.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Șablon de feedback de calitate, Rules for applying different promotional schemes.,Reguli pentru aplicarea diferitelor scheme promoționale., Shift,Schimb, Show {0},Afișați {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Caractere speciale, cu excepția "-", "#", ".", "/", "{" Și "}" nu sunt permise în numirea seriei {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Caractere speciale, cu excepția "-", "#", ".", "/", "{{" Și "}}" nu sunt permise în numirea seriei {0}", Target Details,Detalii despre țintă, {0} already has a Parent Procedure {1}.,{0} are deja o procedură părinte {1}., API,API-ul, diff --git a/erpnext/translations/ru.csv b/erpnext/translations/ru.csv index 99456fb7e025..662346f2e5dc 100644 --- a/erpnext/translations/ru.csv +++ b/erpnext/translations/ru.csv @@ -3535,7 +3535,7 @@ Quality Feedback Template,Шаблон обратной связи по каче Rules for applying different promotional schemes.,Правила применения разных рекламных схем., Shift,Сдвиг, Show {0},Показать {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Специальные символы, кроме ""-"", ""#"", ""."", ""/"", ""{"" и ""}"", не допускаются в серийных номерах {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Специальные символы, кроме "-", "#", "।", "/", "{{" и "}}", не допускаются в серийных номерах {0}", Target Details,Детали цели, {0} already has a Parent Procedure {1}.,{0} уже имеет родительскую процедуру {1}., API,API, diff --git a/erpnext/translations/rw.csv b/erpnext/translations/rw.csv index 1d2ba6ba2bf0..6c2b5ddb1008 100644 --- a/erpnext/translations/rw.csv +++ b/erpnext/translations/rw.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Inyandikorugero nziza, Rules for applying different promotional schemes.,Amategeko yo gukoresha gahunda zitandukanye zo kwamamaza., Shift,Shift, Show {0},Erekana {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Inyuguti zidasanzwe usibye "-", "#", ".", "/", "{" Na "}" ntibyemewe mu ruhererekane rwo kwita izina {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Inyuguti zidasanzwe usibye "-", "#", ".", "/", "{{" Na "}}" ntibyemewe mu ruhererekane rwo kwita izina {0}", Target Details,Intego Ibisobanuro, {0} already has a Parent Procedure {1}.,{0} isanzwe ifite uburyo bwababyeyi {1}., API,API, diff --git a/erpnext/translations/si.csv b/erpnext/translations/si.csv index 560ccba69886..5b7823589a48 100644 --- a/erpnext/translations/si.csv +++ b/erpnext/translations/si.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,ගුණාත්මක ප්‍රතිපෝෂ Rules for applying different promotional schemes.,විවිධ ප්‍රවර්ධන යෝජනා ක්‍රම යෙදීම සඳහා නීති., Shift,මාරුව, Show {0},{0 Show පෙන්වන්න, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" සහ "}" හැර විශේෂ අක්ෂර නම් කිරීමේ ශ්‍රේණියේ අවසර නැත {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",""-", "#", ".", "/", "{{" සහ "}}" හැර විශේෂ අක්ෂර නම් කිරීමේ ශ්‍රේණියේ අවසර නැත {0}", Target Details,ඉලක්ක විස්තර, {0} already has a Parent Procedure {1}.,{0} දැනටමත් දෙමාපිය ක්‍රියා පටිපාටියක් ඇත {1}., API,API, diff --git a/erpnext/translations/sk.csv b/erpnext/translations/sk.csv index 065b90027f40..446e0be58b7e 100644 --- a/erpnext/translations/sk.csv +++ b/erpnext/translations/sk.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Šablóna spätnej väzby kvality, Rules for applying different promotional schemes.,Pravidlá uplatňovania rôznych propagačných programov., Shift,smena, Show {0},Zobraziť {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Špeciálne znaky s výnimkou „-“, „#“, „.“, „/“, „{“ A „}“ nie sú v názvových sériách povolené {0}.", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Špeciálne znaky s výnimkou "-", "#", "।", "/", "{{" A "}}" nie sú v názvových sériách povolené {0}.", Target Details,Podrobnosti o cieli, {0} already has a Parent Procedure {1}.,{0} už má rodičovský postup {1}., API,API, diff --git a/erpnext/translations/sl.csv b/erpnext/translations/sl.csv index 4252b248bfd3..8b8ed0111472 100644 --- a/erpnext/translations/sl.csv +++ b/erpnext/translations/sl.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Predloga za povratne informacije o kakovosti, Rules for applying different promotional schemes.,Pravila za uporabo različnih promocijskih shem., Shift,Shift, Show {0},Prikaži {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Posebni znaki, razen "-", "#", ".", "/", "{" In "}" v poimenovanju ni dovoljen {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Posebni znaki, razen "-", "#", ".", "/", "{{" In "}}" v poimenovanju ni dovoljen {0}", Target Details,Podrobnosti cilja, {0} already has a Parent Procedure {1}.,{0} že ima nadrejeni postopek {1}., API,API, diff --git a/erpnext/translations/sq.csv b/erpnext/translations/sq.csv index 75fbc76a8486..6f4f8e013590 100644 --- a/erpnext/translations/sq.csv +++ b/erpnext/translations/sq.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Modeli i reagimit të cilësisë, Rules for applying different promotional schemes.,Rregulla për aplikimin e skemave të ndryshme promovuese., Shift,ndryshim, Show {0},Trego {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Karaktere speciale përveç "-", "#", ".", "/", "{" Dhe "}" nuk lejohen në seritë emërtuese {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Karaktere speciale përveç "-", "#", ".", "/", "{{" Dhe "}}" nuk lejohen në seritë emërtuese {0}", Target Details,Detaje të synuara, {0} already has a Parent Procedure {1}.,{0} tashmë ka një procedurë prindërore {1}., API,API, diff --git a/erpnext/translations/sr.csv b/erpnext/translations/sr.csv index b269869b1bea..853c6f3cccee 100644 --- a/erpnext/translations/sr.csv +++ b/erpnext/translations/sr.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Квалитетни образац за поврат Rules for applying different promotional schemes.,Правила за примену различитих промотивних шема., Shift,Смена, Show {0},Прикажи {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Посебни знакови осим "-", "#", ".", "/", "{" И "}" нису дозвољени у именовању серија {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Посебни знакови осим "-", "#", ".", "/", "{{" И "}}" нису дозвољени у именовању серија {0}", Target Details,Детаљи циља, {0} already has a Parent Procedure {1}.,{0} већ има родитељску процедуру {1}., API,АПИ, diff --git a/erpnext/translations/sv.csv b/erpnext/translations/sv.csv index 33a331c6db15..2a4d6b1fbd34 100644 --- a/erpnext/translations/sv.csv +++ b/erpnext/translations/sv.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kvalitetsåterkopplingsmall, Rules for applying different promotional schemes.,Regler för tillämpning av olika kampanjprogram., Shift,Flytta, Show {0},Visa {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Specialtecken utom "-", "#", ".", "/", "{" Och "}" är inte tillåtna i namnserien {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Specialtecken utom "-", "#", ".", "/", "{{" Och "}}" är inte tillåtna i namnserien {0}", Target Details,Måldetaljer, {0} already has a Parent Procedure {1}.,{0} har redan en överordnad procedur {1}., API,API, diff --git a/erpnext/translations/sw.csv b/erpnext/translations/sw.csv index 96feb9b491a0..234d33e1066d 100644 --- a/erpnext/translations/sw.csv +++ b/erpnext/translations/sw.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Kiolezo cha Maoni ya Ubora, Rules for applying different promotional schemes.,Sheria za kutumia miradi tofauti ya uendelezaji., Shift,Shift, Show {0},Onyesha {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Tabia maalum isipokuwa "-", "#", ".", "/", "{" Na "}" hairuhusiwi katika kutaja mfululizo {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Tabia maalum isipokuwa "-", "#", ".", "/", "{{" Na "}}" hairuhusiwi katika kutaja mfululizo {0}", Target Details,Maelezo ya Lengo, {0} already has a Parent Procedure {1}.,{0} tayari ina Utaratibu wa Mzazi {1}., API,API, diff --git a/erpnext/translations/ta.csv b/erpnext/translations/ta.csv index 8717b698d67a..e7384b36efc9 100644 --- a/erpnext/translations/ta.csv +++ b/erpnext/translations/ta.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,தரமான கருத்து வார்ப Rules for applying different promotional schemes.,வெவ்வேறு விளம்பர திட்டங்களைப் பயன்படுத்துவதற்கான விதிகள்., Shift,ஷிப்ட், Show {0},{0 Show ஐக் காட்டு, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" மற்றும் "}" தவிர சிறப்பு எழுத்துக்கள் பெயரிடும் தொடரில் அனுமதிக்கப்படவில்லை {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",""-", "#", ".", "/", "{{" மற்றும் "}}" தவிர சிறப்பு எழுத்துக்கள் பெயரிடும் தொடரில் அனுமதிக்கப்படவில்லை {0}", Target Details,இலக்கு விவரங்கள், {0} already has a Parent Procedure {1}.,{0} ஏற்கனவே பெற்றோர் நடைமுறை {1 has ஐக் கொண்டுள்ளது., API,ஏபிஐ, diff --git a/erpnext/translations/te.csv b/erpnext/translations/te.csv index 4c24c101501c..cd14a7731088 100644 --- a/erpnext/translations/te.csv +++ b/erpnext/translations/te.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,నాణ్యమైన అభిప్రాయ మ Rules for applying different promotional schemes.,విభిన్న ప్రచార పథకాలను వర్తింపజేయడానికి నియమాలు., Shift,మార్పు, Show {0},{0 Show చూపించు, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" మరియు "}" మినహా ప్రత్యేక అక్షరాలు పేరు పెట్టే సిరీస్‌లో అనుమతించబడవు {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",""-", "#", ".", "/", "{{" మరియు "}}" మినహా ప్రత్యేక అక్షరాలు పేరు పెట్టే సిరీస్‌లో అనుమతించబడవు {0}", Target Details,లక్ష్య వివరాలు, {0} already has a Parent Procedure {1}.,{0} ఇప్పటికే తల్లిదండ్రుల విధానం {1 has ను కలిగి ఉంది., API,API, diff --git a/erpnext/translations/th.csv b/erpnext/translations/th.csv index cbbf1f0fc300..4ab59bc8e1aa 100644 --- a/erpnext/translations/th.csv +++ b/erpnext/translations/th.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,เทมเพลตข้อเสนอแนะค Rules for applying different promotional schemes.,กฎสำหรับการใช้รูปแบบการส่งเสริมการขายต่าง ๆ, Shift,เปลี่ยน, Show {0},แสดง {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","ห้ามใช้อักขระพิเศษยกเว้น "-", "#", ".", "/", "{" และ "}" ในซีรี่ส์ {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","ห้ามใช้อักขระพิเศษยกเว้น "-", "#", ".", "/", "{{" และ "}}" ในซีรี่ส์ {0}", Target Details,รายละเอียดเป้าหมาย, {0} already has a Parent Procedure {1}.,{0} มี parent Parent {1} อยู่แล้ว, API,API, diff --git a/erpnext/translations/tr.csv b/erpnext/translations/tr.csv index f6ef6ea6aaa3..b65494ce32b0 100644 --- a/erpnext/translations/tr.csv +++ b/erpnext/translations/tr.csv @@ -3537,7 +3537,7 @@ 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 {0}",""-", "#", ".", "/", "{" Ve "}" dışındaki Özel Karakterler, seri dizisine izin verilmez {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",""-", "#", ".", "/", "{{" Ve "}}" 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, diff --git a/erpnext/translations/uk.csv b/erpnext/translations/uk.csv index ce6b231aea0c..4e2f63f870e4 100644 --- a/erpnext/translations/uk.csv +++ b/erpnext/translations/uk.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Шаблон зворотнього зв'язку Rules for applying different promotional schemes.,Правила застосування різних рекламних схем., Shift,Зміна, Show {0},Показати {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Спеціальні символи, окрім "-", "#", ".", "/", "{" Та "}", не дозволяються в іменуванні серій {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Спеціальні символи, окрім "-", "#", ".", "/", "{{" Та "}}", не дозволяються в іменуванні серій {0}", Target Details,Деталі цілі, {0} already has a Parent Procedure {1}.,{0} вже має батьківську процедуру {1}., API,API, diff --git a/erpnext/translations/ur.csv b/erpnext/translations/ur.csv index 892d1719f058..db6518e86b03 100644 --- a/erpnext/translations/ur.csv +++ b/erpnext/translations/ur.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,کوالٹی فیڈ بیک ٹیمپلیٹ۔, Rules for applying different promotional schemes.,مختلف پروموشنل اسکیموں کو لاگو کرنے کے قواعد۔, Shift,شفٹ۔, Show {0},دکھائیں {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",{0} "-" ، "#" ، "." ، "/" ، "{" اور "}" سوائے خصوصی حروف کی نام بندی سیریز میں اجازت نہیں ہے, +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",{0} "-" ، "#" ، "." ، "/" ، "{{" اور "}}" سوائے خصوصی حروف کی نام بندی سیریز میں اجازت نہیں ہے, Target Details,ہدف کی تفصیلات۔, {0} already has a Parent Procedure {1}.,{0} پہلے سے ہی والدین کا طریقہ کار {1} ہے., API,API, diff --git a/erpnext/translations/uz.csv b/erpnext/translations/uz.csv index fcb9024e9c18..bb64a15f2b70 100644 --- a/erpnext/translations/uz.csv +++ b/erpnext/translations/uz.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Sifat bo'yicha fikrlar shablonlari, Rules for applying different promotional schemes.,Turli reklama sxemalarini qo'llash qoidalari., Shift,Shift, Show {0},{0} ni ko'rsatish, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",""-", "#", ".", "/", "{" Va "}" belgilaridan tashqari maxsus belgilarga ruxsat berilmaydi {0}.", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",""-", "#", ".", "/", "{{" Va "}}" belgilaridan tashqari maxsus belgilarga ruxsat berilmaydi {0}.", Target Details,Maqsad tafsilotlari, {0} already has a Parent Procedure {1}.,{0} allaqachon Ota-ona tartibiga ega {1}., API,API, diff --git a/erpnext/translations/vi.csv b/erpnext/translations/vi.csv index f3c54281f64b..7317b4b02750 100644 --- a/erpnext/translations/vi.csv +++ b/erpnext/translations/vi.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,Mẫu phản hồi chất lượng, Rules for applying different promotional schemes.,Quy tắc áp dụng các chương trình khuyến mãi khác nhau., Shift,Ca, Show {0},Hiển thị {0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}","Các ký tự đặc biệt ngoại trừ "-", "#", ".", "/", "{" Và "}" không được phép trong chuỗi đặt tên {0}", +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","Các ký tự đặc biệt ngoại trừ "-", "#", ".", "/", "{{" Và "}}" không được phép trong chuỗi đặt tên {0}", Target Details,Chi tiết mục tiêu, {0} already has a Parent Procedure {1}.,{0} đã có Quy trình dành cho phụ huynh {1}., API,API, diff --git a/erpnext/translations/zh.csv b/erpnext/translations/zh.csv index ae97b914224e..ea2b7f125ebb 100644 --- a/erpnext/translations/zh.csv +++ b/erpnext/translations/zh.csv @@ -3537,7 +3537,7 @@ Quality Feedback Template,质量反馈模板, Rules for applying different promotional schemes.,适用不同促销计划的规则。, Shift,转移, Show {0},显示{0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",命名系列中不允许使用除“ - ”,“#”,“。”,“/”,“{”和“}”之外的特殊字符 {0}, +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",命名系列中不允许使用除"-", "#", "।", "/", "{{" 和 "}}"之外的特殊字符 {0}, Target Details,目标细节, {0} already has a Parent Procedure {1}.,{0}已有父程序{1}。, API,应用程序界面, diff --git a/erpnext/translations/zh_tw.csv b/erpnext/translations/zh_tw.csv index ad6013dd636f..313908fed2c1 100644 --- a/erpnext/translations/zh_tw.csv +++ b/erpnext/translations/zh_tw.csv @@ -3311,7 +3311,7 @@ Quality Feedback Template,質量反饋模板, Rules for applying different promotional schemes.,適用不同促銷計劃的規則。, Shift,轉移, Show {0},顯示{0}, -"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series {0}",命名系列中不允許使用除“ - ”,“#”,“。”,“/”,“{”和“}”之外的特殊字符 {0}, +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",命名系列中不允許使用除 "-", "#", "।", "/", "{{" 和 "}}"之外的特殊字符 {0}, Target Details,目標細節, API,API, Annual,年刊, From ceef2d6553046afb110e24e3939626226ca8369d Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 23 Jan 2023 14:21:10 +0530 Subject: [PATCH 082/355] fix: web supplier quotation (cherry picked from commit 7800db7c0d1af60494968c894b4babde5d471508) --- erpnext/templates/pages/order.py | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/erpnext/templates/pages/order.py b/erpnext/templates/pages/order.py index e1e12bd60d88..185ec6615f6e 100644 --- a/erpnext/templates/pages/order.py +++ b/erpnext/templates/pages/order.py @@ -38,22 +38,27 @@ def get_context(context): if not frappe.has_website_permission(context.doc): frappe.throw(_("Not Permitted"), frappe.PermissionError) - # check for the loyalty program of the customer - customer_loyalty_program = frappe.db.get_value( - "Customer", context.doc.customer, "loyalty_program" - ) - if customer_loyalty_program: - from erpnext.accounts.doctype.loyalty_program.loyalty_program import ( - get_loyalty_program_details_with_points, + context.available_loyalty_points = 0.0 + if context.doc.get("customer"): + # check for the loyalty program of the customer + customer_loyalty_program = frappe.db.get_value( + "Customer", context.doc.customer, "loyalty_program" ) - loyalty_program_details = get_loyalty_program_details_with_points( - context.doc.customer, customer_loyalty_program - ) - context.available_loyalty_points = int(loyalty_program_details.get("loyalty_points")) + if customer_loyalty_program: + from erpnext.accounts.doctype.loyalty_program.loyalty_program import ( + get_loyalty_program_details_with_points, + ) + + loyalty_program_details = get_loyalty_program_details_with_points( + context.doc.customer, customer_loyalty_program + ) + context.available_loyalty_points = int(loyalty_program_details.get("loyalty_points")) - # show Make Purchase Invoice button based on permission - context.show_make_pi_button = frappe.has_permission("Purchase Invoice", "create") + context.show_make_pi_button = False + if context.doc.get("supplier"): + # show Make Purchase Invoice button based on permission + context.show_make_pi_button = frappe.has_permission("Purchase Invoice", "create") def get_attachments(dt, dn): From 5f6979d444f8f375c23f200fe3e91727576ee5c1 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Mon, 23 Jan 2023 11:14:34 +0530 Subject: [PATCH 083/355] chore: add `Cancelled` status in SCO `get_indicator` (cherry picked from commit 840f9d8987dae638be515d1c936c4ae339cb7917) --- .../doctype/subcontracting_order/subcontracting_order_list.js | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order_list.js b/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order_list.js index aab2fc927d03..7ca12642c5f5 100644 --- a/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order_list.js +++ b/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order_list.js @@ -11,6 +11,7 @@ frappe.listview_settings['Subcontracting Order'] = { "Partial Material Transferred": "purple", "Material Transferred": "blue", "Closed": "red", + "Cancelled": "red", }; return [__(doc.status), status_colors[doc.status], "status,=," + doc.status]; }, From 9fe9d7de6bcf9565ea2bc6645685c80d0e233b94 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 25 Jan 2023 04:00:05 +0000 Subject: [PATCH 084/355] chore(release): Bumped to Version 14.14.0 # [14.14.0](https://github.com/frappe/erpnext/compare/v14.13.0...v14.14.0) (2023-01-25) ### Bug Fixes * Better budget exceeding validation messages ([#33713](https://github.com/frappe/erpnext/issues/33713)) ([4be8375](https://github.com/frappe/erpnext/commit/4be8375e36d7a1ccd1337d3be84c30afe346a127)) * bom.json updated ([9469488](https://github.com/frappe/erpnext/commit/9469488254262f41aac96125eefc486e8fb8896d)) * calculate correct amount for qty == 0 ([#33739](https://github.com/frappe/erpnext/issues/33739)) ([1c1c903](https://github.com/frappe/erpnext/commit/1c1c903fee23e13da8a8415957e9106bfff0745a)) * don't add template item in sales/purchase transaction ([8c12f7f](https://github.com/frappe/erpnext/commit/8c12f7f2f25d74ea323cd191f1c3c08c11002ed6)) * **ecommerce:** breadcrumb: fallback to `/all-products` ([#33718](https://github.com/frappe/erpnext/issues/33718)) ([1a33324](https://github.com/frappe/erpnext/commit/1a33324b4a0af094653ff47f90637c652c5c2266)) * fb issue in asset chart, asset split and reverse_depreciation_entry_made_after_disposal ([dffdc67](https://github.com/frappe/erpnext/commit/dffdc67455ac07ebb4f66bc85c3274acb6290d0b)) * hide with_operation on selection on fg_based and vice versa ([8ee6db3](https://github.com/frappe/erpnext/commit/8ee6db3b7bb4b61bbfaf385657a553e5163f23e7)) * incorrect `rate` and `amount` in MR Item ([#33547](https://github.com/frappe/erpnext/issues/33547)) ([ff731ea](https://github.com/frappe/erpnext/commit/ff731ea70a0d8232f0d3f64f4349b36f0f85b780)) * incorrect actual qty for the packed item ([bcd1fca](https://github.com/frappe/erpnext/commit/bcd1fca37bcae71c517c7fcc53314655df42f535)) * incorrect row order and accumulated_depreciation when schedule with multiple FBs is scrapped ([96f9b34](https://github.com/frappe/erpnext/commit/96f9b34b19f324b8d083666e9b6e4973953d7932)) * linting ([dedc9ec](https://github.com/frappe/erpnext/commit/dedc9ecc7ca806fae8c2d87cb442ac2e2d027a0a)) * local variable 'stock_rbnb' referenced before assignment ([21cf929](https://github.com/frappe/erpnext/commit/21cf929c7ac4a41cd0527ceb622d74e0940828d1)) * minor change in bom.js added ([19aa237](https://github.com/frappe/erpnext/commit/19aa23765a84b9441e5925274fbaa679a84f82e6)) * minor changes added ([7fd8cef](https://github.com/frappe/erpnext/commit/7fd8cef4d3667ca24c61375d7f26996784d22565)) * **minor:** Label updates in Statement of Accounts ([#33639](https://github.com/frappe/erpnext/issues/33639)) ([8af9a2f](https://github.com/frappe/erpnext/commit/8af9a2fad1a1f5153929c03f78bf908c76802cb6)) * missing constant definition ([219aa81](https://github.com/frappe/erpnext/commit/219aa81eb61851ba9f62745b8e4168ab1efb1e94)) * not able to change default BOM in the Subcontracting Order ([ed1aed2](https://github.com/frappe/erpnext/commit/ed1aed22c079a2a0c38b35a9fa67aa2da0338b35)) * Patch to update reference_due_date in Journal Entry ([#33616](https://github.com/frappe/erpnext/issues/33616)) ([0740120](https://github.com/frappe/erpnext/commit/0740120914866f317daa15959283a184606ac487)) * **pricing rule:** free item duplication ([#33746](https://github.com/frappe/erpnext/issues/33746)) ([5a49884](https://github.com/frappe/erpnext/commit/5a4988463674528ae0e8c7ea4fa9656645a44d09)) * rewrite logic for duplicate check in Item Attribute ([6544cb8](https://github.com/frappe/erpnext/commit/6544cb882285d01e7bfa4e60e04901fb870eddb0)) * Short closed order, receipt, and delivery note status on cancellation ([#33743](https://github.com/frappe/erpnext/issues/33743)) ([89f1eef](https://github.com/frappe/erpnext/commit/89f1eefe2ba02f9d30a2f1675f4984091aa01d03)) * TDS deduction in payment entry ([#33747](https://github.com/frappe/erpnext/issues/33747)) ([f9a43e5](https://github.com/frappe/erpnext/commit/f9a43e5470f153bdf94fa827b688462e8f1cc3f6)) * test case added for FG_BASED OPERTING COST ([30af8c3](https://github.com/frappe/erpnext/commit/30af8c3acb7017c96a297e50099652b6eda18a1b)) * the frappe throw message is corrected in the group task validation ([cf43930](https://github.com/frappe/erpnext/commit/cf439301f6ce1df5ac962b388bac0210079fac7e)) * use hash based naming for tax withheld vouchers child table (backport [#33643](https://github.com/frappe/erpnext/issues/33643)) ([#33748](https://github.com/frappe/erpnext/issues/33748)) ([cf6d454](https://github.com/frappe/erpnext/commit/cf6d4546063f66a36dede61941800c18e19fbed2)) * web supplier quotation ([ceef2d6](https://github.com/frappe/erpnext/commit/ceef2d6553046afb110e24e3939626226ca8369d)) ### Features * Add operating cost based on bom quanity without creating job card ([0035ee2](https://github.com/frappe/erpnext/commit/0035ee2a74a8286330bb859b1ddb7dbb946fa5c9)) * get items from Transit Stock Entry ([31fd6f3](https://github.com/frappe/erpnext/commit/31fd6f300f48f8463a244213b3cb34c269698a18)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index b1d128aac00c..0cb2b7ef2a01 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.13.0" +__version__ = "14.14.0" def get_default_company(user=None): From 5eb84f65ef482f253d80e0f70bb33d4f1c24357e Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 25 Jan 2023 12:38:17 +0530 Subject: [PATCH 085/355] ci: documentation helper (backport #33757) (#33798) ci: documentation helper (#33757) refactor: documentation helper (cherry picked from commit d155042edd0ff1cb0df97313d317678d1c81f0a9) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- .github/helper/documentation.py | 99 ++++++++++++++++++++------------- 1 file changed, 59 insertions(+), 40 deletions(-) diff --git a/.github/helper/documentation.py b/.github/helper/documentation.py index 378983e95f2a..83346045f89d 100644 --- a/.github/helper/documentation.py +++ b/.github/helper/documentation.py @@ -3,52 +3,71 @@ from urllib.parse import urlparse -docs_repos = [ - "frappe_docs", - "erpnext_documentation", +WEBSITE_REPOS = [ "erpnext_com", "frappe_io", ] +DOCUMENTATION_DOMAINS = [ + "docs.erpnext.com", + "frappeframework.com", +] + + +def is_valid_url(url: str) -> bool: + parts = urlparse(url) + return all((parts.scheme, parts.netloc, parts.path)) + + +def is_documentation_link(word: str) -> bool: + if not word.startswith("http") or not is_valid_url(word): + return False + + parsed_url = urlparse(word) + if parsed_url.netloc in DOCUMENTATION_DOMAINS: + return True + + if parsed_url.netloc == "github.com": + parts = parsed_url.path.split("/") + if len(parts) == 5 and parts[1] == "frappe" and parts[2] in WEBSITE_REPOS: + return True + + return False + + +def contains_documentation_link(body: str) -> bool: + return any( + is_documentation_link(word) + for line in body.splitlines() + for word in line.split() + ) + + +def check_pull_request(number: str) -> "tuple[int, str]": + response = requests.get(f"https://api.github.com/repos/frappe/erpnext/pulls/{number}") + if not response.ok: + return 1, "Pull Request Not Found! ⚠️" + + payload = response.json() + title = (payload.get("title") or "").lower().strip() + head_sha = (payload.get("head") or {}).get("sha") + body = (payload.get("body") or "").lower() + + if ( + not title.startswith("feat") + or not head_sha + or "no-docs" in body + or "backport" in body + ): + return 0, "Skipping documentation checks... 🏃" -def uri_validator(x): - result = urlparse(x) - return all([result.scheme, result.netloc, result.path]) + if contains_documentation_link(body): + return 0, "Documentation Link Found. You're Awesome! 🎉" -def docs_link_exists(body): - for line in body.splitlines(): - for word in line.split(): - if word.startswith('http') and uri_validator(word): - parsed_url = urlparse(word) - if parsed_url.netloc == "github.com": - parts = parsed_url.path.split('/') - if len(parts) == 5 and parts[1] == "frappe" and parts[2] in docs_repos: - return True - elif parsed_url.netloc == "docs.erpnext.com": - return True + return 1, "Documentation Link Not Found! ⚠️" if __name__ == "__main__": - pr = sys.argv[1] - response = requests.get("https://api.github.com/repos/frappe/erpnext/pulls/{}".format(pr)) - - if response.ok: - payload = response.json() - title = (payload.get("title") or "").lower().strip() - head_sha = (payload.get("head") or {}).get("sha") - body = (payload.get("body") or "").lower() - - if (title.startswith("feat") - and head_sha - and "no-docs" not in body - and "backport" not in body - ): - if docs_link_exists(body): - print("Documentation Link Found. You're Awesome! 🎉") - - else: - print("Documentation Link Not Found! ⚠️") - sys.exit(1) - - else: - print("Skipping documentation checks... 🏃") + exit_code, message = check_pull_request(sys.argv[1]) + print(message) + sys.exit(exit_code) From 440e16dc10e61fbd2674d83d3023795fe0780037 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Wed, 25 Jan 2023 17:35:08 +0530 Subject: [PATCH 086/355] chore: remove broken translation [skip ci] --- erpnext/translations/zh.csv | 1 - 1 file changed, 1 deletion(-) diff --git a/erpnext/translations/zh.csv b/erpnext/translations/zh.csv index ea2b7f125ebb..228ec39ddde7 100644 --- a/erpnext/translations/zh.csv +++ b/erpnext/translations/zh.csv @@ -3537,7 +3537,6 @@ Quality Feedback Template,质量反馈模板, Rules for applying different promotional schemes.,适用不同促销计划的规则。, Shift,转移, Show {0},显示{0}, -"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",命名系列中不允许使用除"-", "#", "।", "/", "{{" 和 "}}"之外的特殊字符 {0}, Target Details,目标细节, {0} already has a Parent Procedure {1}.,{0}已有父程序{1}。, API,应用程序界面, From f7eabcafde23e02b1db7209549462abbbf4aafde Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 25 Jan 2023 17:37:57 +0530 Subject: [PATCH 087/355] fix: use correct filter name in `item_query` (backport #33814) (#33816) fix: use correct filter name in `item_query` (#33814) (cherry picked from commit da323cbb4010d25b599dcdde9e9178bd17b0412e) Co-authored-by: Daizy Modi --- erpnext/stock/doctype/quality_inspection/quality_inspection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/quality_inspection/quality_inspection.py b/erpnext/stock/doctype/quality_inspection/quality_inspection.py index 9321c2c166b5..2a9f091bd091 100644 --- a/erpnext/stock/doctype/quality_inspection/quality_inspection.py +++ b/erpnext/stock/doctype/quality_inspection/quality_inspection.py @@ -221,7 +221,7 @@ def calculate_mean(self, reading): def item_query(doctype, txt, searchfield, start, page_len, filters): from frappe.desk.reportview import get_match_cond - from_doctype = cstr(filters.get("doctype")) + from_doctype = cstr(filters.get("from")) if not from_doctype or not frappe.db.exists("DocType", from_doctype): return [] From fc0ba2b9c82fa9f2bbbbee998dc7df70636a7caa Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Thu, 26 Jan 2023 13:15:01 +0530 Subject: [PATCH 088/355] chore: remove broken translation (cherry picked from commit 21f425660dccddb1bbab3ae81918fefff515b78e) --- erpnext/translations/zh_tw.csv | 1 - 1 file changed, 1 deletion(-) diff --git a/erpnext/translations/zh_tw.csv b/erpnext/translations/zh_tw.csv index 313908fed2c1..1b7e18637d33 100644 --- a/erpnext/translations/zh_tw.csv +++ b/erpnext/translations/zh_tw.csv @@ -3311,7 +3311,6 @@ Quality Feedback Template,質量反饋模板, Rules for applying different promotional schemes.,適用不同促銷計劃的規則。, Shift,轉移, Show {0},顯示{0}, -"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",命名系列中不允許使用除 "-", "#", "।", "/", "{{" 和 "}}"之外的特殊字符 {0}, Target Details,目標細節, API,API, Annual,年刊, From f124dd31120b52a4de15e8ba612ba82e5ed521d0 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 26 Jan 2023 20:26:50 +0530 Subject: [PATCH 089/355] fix: GST Category validation broken for pos unregistered customer who dont have address. (#33800) fix: GST Category validation broken for pos unregistered customer who dont have address. (#33800) * fix: GST Category validation is given for pos customer (cherry picked from commit c5ca8d74c4aa400e4123bdfe62009b261e43b1bf) Co-authored-by: Vishal Dhayagude --- erpnext/accounts/party.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py index 67cf6443538a..bfe73f02cdc5 100644 --- a/erpnext/accounts/party.py +++ b/erpnext/accounts/party.py @@ -211,7 +211,13 @@ def set_address_details( else: party_details.update(get_company_address(company)) - if doctype and doctype in ["Delivery Note", "Sales Invoice", "Sales Order", "Quotation"]: + if doctype and doctype in [ + "Delivery Note", + "Sales Invoice", + "Sales Order", + "Quotation", + "POS Invoice", + ]: if party_details.company_address: party_details.update( get_fetch_values(doctype, "company_address", party_details.company_address) From 58c3e16fec68da1e784800daee76e0f13edd4ed7 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Thu, 26 Jan 2023 20:26:21 +0530 Subject: [PATCH 090/355] fix: disfuctional cost center filter on Journal Entries (#33815) * fix: missing cost_center filter for journal entries * test: cost center filter on invoices, journals and payments (cherry picked from commit b31b850db8775029714f41d0c40bc43f81f57bd5) --- .../payment_reconciliation.py | 4 ++ .../test_payment_reconciliation.py | 67 +++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py index 12c0b7a7bf72..154fdc039d40 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py @@ -69,6 +69,10 @@ def get_payment_entries(self): def get_jv_entries(self): condition = self.get_conditions() + + if self.get("cost_center"): + condition += f" and t2.cost_center = '{self.cost_center}' " + dr_or_cr = ( "credit_in_account_currency" if erpnext.get_party_account_type(self.party_type) == "Receivable" diff --git a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py index 2ba90b4da9ff..00e3934f10c0 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py @@ -747,6 +747,73 @@ def test_differing_cost_center_on_invoice_and_payment(self): self.assertEqual(len(pr.get("invoices")), 0) self.assertEqual(len(pr.get("payments")), 0) + def test_cost_center_filter_on_vouchers(self): + """ + Test Cost Center filter is applied on Invoices, Payment Entries and Journals + """ + transaction_date = nowdate() + rate = 100 + + # 'Main - PR' Cost Center + si1 = self.create_sales_invoice( + qty=1, rate=rate, posting_date=transaction_date, do_not_submit=True + ) + si1.cost_center = self.main_cc.name + si1.submit() + + pe1 = self.create_payment_entry(posting_date=transaction_date, amount=rate) + pe1.cost_center = self.main_cc.name + pe1 = pe1.save().submit() + + je1 = self.create_journal_entry(self.bank, self.debit_to, 100, transaction_date) + je1.accounts[0].cost_center = self.main_cc.name + je1.accounts[1].cost_center = self.main_cc.name + je1.accounts[1].party_type = "Customer" + je1.accounts[1].party = self.customer + je1 = je1.save().submit() + + # 'Sub - PR' Cost Center + si2 = self.create_sales_invoice( + qty=1, rate=rate, posting_date=transaction_date, do_not_submit=True + ) + si2.cost_center = self.sub_cc.name + si2.submit() + + pe2 = self.create_payment_entry(posting_date=transaction_date, amount=rate) + pe2.cost_center = self.sub_cc.name + pe2 = pe2.save().submit() + + je2 = self.create_journal_entry(self.bank, self.debit_to, 100, transaction_date) + je2.accounts[0].cost_center = self.sub_cc.name + je2.accounts[1].cost_center = self.sub_cc.name + je2.accounts[1].party_type = "Customer" + je2.accounts[1].party = self.customer + je2 = je2.save().submit() + + pr = self.create_payment_reconciliation() + pr.cost_center = self.main_cc.name + + pr.get_unreconciled_entries() + + # check PR tool output + self.assertEqual(len(pr.get("invoices")), 1) + self.assertEqual(pr.get("invoices")[0].get("invoice_number"), si1.name) + self.assertEqual(len(pr.get("payments")), 2) + payment_vouchers = [x.get("reference_name") for x in pr.get("payments")] + self.assertCountEqual(payment_vouchers, [pe1.name, je1.name]) + + # Change cost center + pr.cost_center = self.sub_cc.name + + pr.get_unreconciled_entries() + + # check PR tool output + self.assertEqual(len(pr.get("invoices")), 1) + self.assertEqual(pr.get("invoices")[0].get("invoice_number"), si2.name) + self.assertEqual(len(pr.get("payments")), 2) + payment_vouchers = [x.get("reference_name") for x in pr.get("payments")] + self.assertCountEqual(payment_vouchers, [je2.name, pe2.name]) + def make_customer(customer_name, currency=None): if not frappe.db.exists("Customer", customer_name): From ac2ebfbf5942dc127aec8ed05bba864007a89258 Mon Sep 17 00:00:00 2001 From: Devin Slauenwhite Date: Thu, 26 Jan 2023 16:53:05 -0500 Subject: [PATCH 091/355] perf: show update items dialog (cherry picked from commit a835c1a4187cda0a995b26408600c8f261ae0790) --- erpnext/public/js/utils.js | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js index d37b7bb43b38..51dcd64d9ddb 100755 --- a/erpnext/public/js/utils.js +++ b/erpnext/public/js/utils.js @@ -491,7 +491,20 @@ erpnext.utils.update_child_items = function(opts) { const child_meta = frappe.get_meta(`${frm.doc.doctype} Item`); const get_precision = (fieldname) => child_meta.fields.find(f => f.fieldname == fieldname).precision; - this.data = []; + this.data = frm.doc[opts.child_docname].map((d) => { + return { + "docname": d.name, + "name": d.name, + "item_code": d.item_code, + "delivery_date": d.delivery_date, + "schedule_date": d.schedule_date, + "conversion_factor": d.conversion_factor, + "qty": d.qty, + "rate": d.rate, + "uom": d.uom + } + }); + const fields = [{ fieldtype:'Data', fieldname:"docname", @@ -588,7 +601,7 @@ erpnext.utils.update_child_items = function(opts) { }) } - const dialog = new frappe.ui.Dialog({ + new frappe.ui.Dialog({ title: __("Update Items"), fields: [ { @@ -624,24 +637,7 @@ erpnext.utils.update_child_items = function(opts) { refresh_field("items"); }, primary_action_label: __('Update') - }); - - frm.doc[opts.child_docname].forEach(d => { - dialog.fields_dict.trans_items.df.data.push({ - "docname": d.name, - "name": d.name, - "item_code": d.item_code, - "delivery_date": d.delivery_date, - "schedule_date": d.schedule_date, - "conversion_factor": d.conversion_factor, - "qty": d.qty, - "rate": d.rate, - "uom": d.uom - }); - this.data = dialog.fields_dict.trans_items.df.data; - dialog.fields_dict.trans_items.grid.refresh(); - }) - dialog.show(); + }).show(); } erpnext.utils.map_current_doc = function(opts) { From 5d4967ceeefe9504f421d2230a08bb23f57eca5b Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 28 Jan 2023 10:28:06 +0530 Subject: [PATCH 092/355] fix(patch): validation error on cost center allocation migration (#33835) fix(patch): validation error on cost center allocation migration If Distributed cost centers have GL postings on patch run date, patch failes with valiation error. (cherry picked from commit de10f2dc005e5aa493d08bfd1047a36b8040f46f) Co-authored-by: ruthra kumar --- .../cost_center_allocation/cost_center_allocation.py | 7 ++++++- erpnext/patches/v14_0/migrate_cost_center_allocations.py | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/cost_center_allocation/cost_center_allocation.py b/erpnext/accounts/doctype/cost_center_allocation/cost_center_allocation.py index d25016fe596c..54ffe21a1522 100644 --- a/erpnext/accounts/doctype/cost_center_allocation/cost_center_allocation.py +++ b/erpnext/accounts/doctype/cost_center_allocation/cost_center_allocation.py @@ -28,9 +28,14 @@ class InvalidDateError(frappe.ValidationError): class CostCenterAllocation(Document): + def __init__(self, *args, **kwargs): + super(CostCenterAllocation, self).__init__(*args, **kwargs) + self._skip_from_date_validation = False + def validate(self): self.validate_total_allocation_percentage() - self.validate_from_date_based_on_existing_gle() + if not self._skip_from_date_validation: + self.validate_from_date_based_on_existing_gle() self.validate_backdated_allocation() self.validate_main_cost_center() self.validate_child_cost_centers() diff --git a/erpnext/patches/v14_0/migrate_cost_center_allocations.py b/erpnext/patches/v14_0/migrate_cost_center_allocations.py index 3bd26933bada..48f4e6d98938 100644 --- a/erpnext/patches/v14_0/migrate_cost_center_allocations.py +++ b/erpnext/patches/v14_0/migrate_cost_center_allocations.py @@ -18,9 +18,11 @@ def create_new_cost_center_allocation_records(cc_allocations): cca = frappe.new_doc("Cost Center Allocation") cca.main_cost_center = main_cc cca.valid_from = today() + cca._skip_from_date_validation = True for child_cc, percentage in allocations.items(): cca.append("allocation_percentages", ({"cost_center": child_cc, "percentage": percentage})) + cca.save() cca.submit() From b98d3514ab1bef6a6a26f2b5c0a3c9dde0f0b6fc Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Sat, 28 Jan 2023 13:51:33 +0530 Subject: [PATCH 093/355] fix: item rate not fetching (cherry picked from commit 0d7f98b496ac49872654b1a9c47183f337544ce1) --- erpnext/public/js/controllers/transaction.js | 4 ++++ erpnext/stock/doctype/item/item.js | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index b1bf8b24047a..b6fab544220d 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -1691,6 +1691,10 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe var me = this; var valid = true; + if (frappe.flags.ignore_company_party_validation) { + return valid; + } + $.each(["company", "customer"], function(i, fieldname) { if(frappe.meta.has_field(me.frm.doc.doctype, fieldname) && me.frm.doc.doctype != "Purchase Order") { if (!me.frm.doc[fieldname]) { diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js index e61f0f514e31..5bcb05aa9888 100644 --- a/erpnext/stock/doctype/item/item.js +++ b/erpnext/stock/doctype/item/item.js @@ -894,6 +894,12 @@ function open_form(frm, doctype, child_doctype, parentfield) { new_child_doc.uom = frm.doc.stock_uom; new_child_doc.description = frm.doc.description; - frappe.ui.form.make_quick_entry(doctype, null, null, new_doc); + frappe.run_serially([ + () => frappe.ui.form.make_quick_entry(doctype, null, null, new_doc), + () => { + frappe.flags.ignore_company_party_validation = true; + frappe.model.trigger("item_code", frm.doc.name, new_child_doc); + } + ]) }); } From 0fcf364aaada1d08bef06369ccbdcabfb5ad2935 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 29 Jan 2023 17:08:30 +0530 Subject: [PATCH 094/355] fix: double salutation on quotation print (#33834) fix: double salutation on quotation print (#33834) 'lead_name' always has salutation. (cherry picked from commit f270880735cca4992bc6ced158c5c26a92cd9179) Co-authored-by: ruthra kumar --- erpnext/crm/doctype/lead/lead.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py index 0d12499771e1..5d3437c4a880 100644 --- a/erpnext/crm/doctype/lead/lead.py +++ b/erpnext/crm/doctype/lead/lead.py @@ -393,7 +393,7 @@ def get_lead_details(lead, posting_date=None, company=None): { "territory": lead.territory, "customer_name": lead.company_name or lead.lead_name, - "contact_display": " ".join(filter(None, [lead.salutation, lead.lead_name])), + "contact_display": " ".join(filter(None, [lead.lead_name])), "contact_email": lead.email_id, "contact_mobile": lead.mobile_no, "contact_phone": lead.phone, From a0e1ee0450478782a2ca320fbc3080703c954b2a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 29 Jan 2023 21:26:06 +0530 Subject: [PATCH 095/355] fix: Ignore linked JE on JE cancellation (#33852) fix: Ignore linked JE on JE cancellation (#33852) (cherry picked from commit 428b099f63b88fb3ff37b04be4e91d645b33e041) Co-authored-by: Deepesh Garg --- erpnext/accounts/doctype/journal_entry/journal_entry.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.js b/erpnext/accounts/doctype/journal_entry/journal_entry.js index 30a32015f5d4..21f27aedc510 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.js +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.js @@ -8,7 +8,7 @@ frappe.provide("erpnext.journal_entry"); 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']; + frm.ignore_doctypes_on_cancel_all = ['Sales Invoice', 'Purchase Invoice', 'Journal Entry']; }, refresh: function(frm) { From f5bde9cf6d5ec61b3e8c011c9dfe289dba54fb9a Mon Sep 17 00:00:00 2001 From: Dany Robert Date: Thu, 19 Jan 2023 09:39:43 +0000 Subject: [PATCH 096/355] fix(gp): fetch buying amount from dn related to so (cherry picked from commit e8e20da78eeece6b5fad895c6aa6f50f57e561e4) --- .../report/gross_profit/gross_profit.py | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py index 646fe85bac95..2d86020e972a 100644 --- a/erpnext/accounts/report/gross_profit/gross_profit.py +++ b/erpnext/accounts/report/gross_profit/gross_profit.py @@ -655,10 +655,36 @@ def get_buying_amount(self, row, item_code): return self.calculate_buying_amount_from_sle( row, my_sle, parenttype, parent, item_row, item_code ) + elif row.sales_order and row.so_detail: + incoming_amount = self.get_buying_amount_from_so_dn(row.sales_order, row.so_detail, item_code) + if incoming_amount: + return incoming_amount else: return flt(row.qty) * self.get_average_buying_rate(row, item_code) - return 0.0 + return flt(row.qty) * self.get_average_buying_rate(row, item_code) + + def get_buying_amount_from_so_dn(self, sales_order, so_detail, item_code): + from frappe.query_builder.functions import Sum + delivery_note = frappe.qb.DocType("Delivery Note") + delivery_note_item = frappe.qb.DocType("Delivery Note Item") + + query = ( + frappe.qb.from_(delivery_note) + .inner_join(delivery_note_item) + .on(delivery_note.name == delivery_note_item.parent) + .select( + Sum(delivery_note_item.incoming_rate * delivery_note_item.stock_qty) + ) + .where(delivery_note.docstatus == 1) + .where(delivery_note_item.item_code == item_code) + .where(delivery_note_item.against_sales_order == sales_order) + .where(delivery_note_item.so_detail == so_detail) + .groupby(delivery_note_item.item_code) + ) + + incoming_amount = query.run() + return flt(incoming_amount[0][0]) if incoming_amount else 0 def get_average_buying_rate(self, row, item_code): args = row @@ -760,7 +786,8 @@ def load_invoice_items(self): `tabSales Invoice`.territory, `tabSales Invoice Item`.item_code, `tabSales Invoice Item`.item_name, `tabSales Invoice Item`.description, `tabSales Invoice Item`.warehouse, `tabSales Invoice Item`.item_group, - `tabSales Invoice Item`.brand, `tabSales Invoice Item`.dn_detail, + `tabSales Invoice Item`.brand, `tabSales Invoice Item`.so_detail, + `tabSales Invoice Item`.sales_order, `tabSales Invoice Item`.dn_detail, `tabSales Invoice Item`.delivery_note, `tabSales Invoice Item`.stock_qty as qty, `tabSales Invoice Item`.base_net_rate, `tabSales Invoice Item`.base_net_amount, `tabSales Invoice Item`.name as "item_row", `tabSales Invoice`.is_return, From a659208ed1d051761c6722ee764ce6d7a9be3881 Mon Sep 17 00:00:00 2001 From: Dany Robert Date: Thu, 19 Jan 2023 10:25:05 +0000 Subject: [PATCH 097/355] chore: linting issue (cherry picked from commit ef90e249312dce414c6dbe088b8880c47403b3cc) --- erpnext/accounts/report/gross_profit/gross_profit.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py index 2d86020e972a..8ce7d1d33680 100644 --- a/erpnext/accounts/report/gross_profit/gross_profit.py +++ b/erpnext/accounts/report/gross_profit/gross_profit.py @@ -666,6 +666,7 @@ def get_buying_amount(self, row, item_code): def get_buying_amount_from_so_dn(self, sales_order, so_detail, item_code): from frappe.query_builder.functions import Sum + delivery_note = frappe.qb.DocType("Delivery Note") delivery_note_item = frappe.qb.DocType("Delivery Note Item") @@ -673,9 +674,7 @@ def get_buying_amount_from_so_dn(self, sales_order, so_detail, item_code): frappe.qb.from_(delivery_note) .inner_join(delivery_note_item) .on(delivery_note.name == delivery_note_item.parent) - .select( - Sum(delivery_note_item.incoming_rate * delivery_note_item.stock_qty) - ) + .select(Sum(delivery_note_item.incoming_rate * delivery_note_item.stock_qty)) .where(delivery_note.docstatus == 1) .where(delivery_note_item.item_code == item_code) .where(delivery_note_item.against_sales_order == sales_order) From 7a793ea58888801e1852756f102455255958be5b Mon Sep 17 00:00:00 2001 From: Dany Robert Date: Mon, 30 Jan 2023 10:35:43 +0000 Subject: [PATCH 098/355] feat(gp): test for inv and dn related via so (cherry picked from commit 1f6ab86a659d9745fa8971656a54c19bc784de2b) --- .../report/gross_profit/test_gross_profit.py | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/erpnext/accounts/report/gross_profit/test_gross_profit.py b/erpnext/accounts/report/gross_profit/test_gross_profit.py index fa11a41df4ad..332be8ef54ec 100644 --- a/erpnext/accounts/report/gross_profit/test_gross_profit.py +++ b/erpnext/accounts/report/gross_profit/test_gross_profit.py @@ -302,3 +302,79 @@ def test_bundled_delivery_note_with_different_warehouses(self): columns, data = execute(filters=filters) self.assertGreater(len(data), 0) + + def test_order_connected_dn_and_inv(self): + from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order + """ + Test gp calculation when invoice and delivery note aren't directly connected. + SO -- INV + | + DN + """ + se = make_stock_entry( + company=self.company, + item_code=self.item, + target=self.warehouse, + qty=3, + basic_rate=100, + do_not_submit=True, + ) + item = se.items[0] + se.append( + "items", + { + "item_code": item.item_code, + "s_warehouse": item.s_warehouse, + "t_warehouse": item.t_warehouse, + "qty": 10, + "basic_rate": 200, + "conversion_factor": item.conversion_factor or 1.0, + "transfer_qty": flt(item.qty) * (flt(item.conversion_factor) or 1.0), + "serial_no": item.serial_no, + "batch_no": item.batch_no, + "cost_center": item.cost_center, + "expense_account": item.expense_account, + }, + ) + se = se.save().submit() + + so = make_sales_order( + customer=self.customer, + company=self.company, + warehouse=self.warehouse, + item=self.item, + qty=4, + do_not_save=False, + do_not_submit=False, + ) + + from erpnext.selling.doctype.sales_order.sales_order import make_delivery_note, make_sales_invoice + make_delivery_note(so.name).submit() + sinv = make_sales_invoice(so.name).submit() + + filters = frappe._dict( + company=self.company, from_date=nowdate(), to_date=nowdate(), group_by="Invoice" + ) + + columns, data = execute(filters=filters) + + # Without Delivery Note, buying rate should be 150 + expected_entry = { + "parent_invoice": sinv.name, + "currency": "INR", + "sales_invoice": self.item, + "customer": self.customer, + "posting_date": frappe.utils.datetime.date.fromisoformat(nowdate()), + "item_code": self.item, + "item_name": self.item, + "warehouse": "Stores - _GP", + "qty": 4.0, + "avg._selling_rate": 100.0, + "valuation_rate": 125.0, + "selling_amount": 400.0, + "buying_amount": 500.0, + "gross_profit": -100.0, + "gross_profit_%": -25.0, + } + gp_entry = [x for x in data if x.parent_invoice == sinv.name] + self.assertDictContainsSubset(expected_entry, gp_entry[0]) \ No newline at end of file From 5caa9e2240c90a6140c1ef94ff3d3a8c82dae808 Mon Sep 17 00:00:00 2001 From: Dany Robert Date: Mon, 30 Jan 2023 10:45:08 +0000 Subject: [PATCH 099/355] chore: linting issues (cherry picked from commit d69c8393692fa8ecc08ff7f10ca66a1c5a9f3b0f) --- .../accounts/report/gross_profit/test_gross_profit.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/report/gross_profit/test_gross_profit.py b/erpnext/accounts/report/gross_profit/test_gross_profit.py index 332be8ef54ec..21681bef5b5a 100644 --- a/erpnext/accounts/report/gross_profit/test_gross_profit.py +++ b/erpnext/accounts/report/gross_profit/test_gross_profit.py @@ -305,6 +305,7 @@ def test_bundled_delivery_note_with_different_warehouses(self): def test_order_connected_dn_and_inv(self): from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order + """ Test gp calculation when invoice and delivery note aren't directly connected. SO -- INV @@ -348,7 +349,11 @@ def test_order_connected_dn_and_inv(self): do_not_submit=False, ) - from erpnext.selling.doctype.sales_order.sales_order import make_delivery_note, make_sales_invoice + from erpnext.selling.doctype.sales_order.sales_order import ( + make_delivery_note, + make_sales_invoice, + ) + make_delivery_note(so.name).submit() sinv = make_sales_invoice(so.name).submit() @@ -357,8 +362,6 @@ def test_order_connected_dn_and_inv(self): ) columns, data = execute(filters=filters) - - # Without Delivery Note, buying rate should be 150 expected_entry = { "parent_invoice": sinv.name, "currency": "INR", @@ -377,4 +380,4 @@ def test_order_connected_dn_and_inv(self): "gross_profit_%": -25.0, } gp_entry = [x for x in data if x.parent_invoice == sinv.name] - self.assertDictContainsSubset(expected_entry, gp_entry[0]) \ No newline at end of file + self.assertDictContainsSubset(expected_entry, gp_entry[0]) From 4586806ed12fc3817563c3b2cf660b611dd50815 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Mon, 30 Jan 2023 21:25:04 +0530 Subject: [PATCH 100/355] fix: disposal_was_made_on_original_schedule_date --- erpnext/assets/doctype/asset/asset.py | 7 +------ erpnext/assets/doctype/asset/depreciation.py | 11 ++++++++++- erpnext/assets/doctype/asset/test_asset.py | 7 +------ 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 6aaac6cea448..648cbb5b2be6 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -26,6 +26,7 @@ from erpnext.assets.doctype.asset.depreciation import ( get_depreciation_accounts, get_disposal_account_and_cost_center, + is_last_day_of_the_month, ) from erpnext.assets.doctype.asset_category.asset_category import get_asset_category_account from erpnext.controllers.accounts_controller import AccountsController @@ -1083,12 +1084,6 @@ def get_total_days(date, frequency): return date_diff(date, period_start_date) -def is_last_day_of_the_month(date): - last_day_of_the_month = get_last_day(date) - - return getdate(last_day_of_the_month) == getdate(date) - - @erpnext.allow_regional def get_depreciation_amount(asset, depreciable_value, row): if row.depreciation_method in ("Straight Line", "Manual"): diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py index 92d040d4ebbb..220534b93884 100644 --- a/erpnext/assets/doctype/asset/depreciation.py +++ b/erpnext/assets/doctype/asset/depreciation.py @@ -4,7 +4,7 @@ import frappe from frappe import _ -from frappe.utils import add_months, cint, flt, getdate, nowdate, today +from frappe.utils import add_months, cint, flt, get_last_day, getdate, nowdate, today from frappe.utils.data import get_link_to_form from frappe.utils.user import get_users_with_role @@ -372,6 +372,9 @@ def disposal_was_made_on_original_schedule_date(asset, schedule, row, posting_da finance_book.depreciation_start_date, row * cint(finance_book.frequency_of_depreciation) ) + if is_last_day_of_the_month(finance_book.depreciation_start_date): + orginal_schedule_date = get_last_day(orginal_schedule_date) + if orginal_schedule_date == posting_date_of_disposal: return True return False @@ -575,3 +578,9 @@ def get_value_after_depreciation_on_disposal_date(asset, disposal_date, finance_ ) else: return flt(asset_doc.value_after_depreciation) + + +def is_last_day_of_the_month(date): + last_day_of_the_month = get_last_day(date) + + return getdate(last_day_of_the_month) == getdate(date) diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 5a31ca0e2d77..0d6c54c6b1b0 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -22,6 +22,7 @@ update_maintenance_status, ) from erpnext.assets.doctype.asset.depreciation import ( + is_last_day_of_the_month, post_depreciation_entries, restore_asset, scrap_asset, @@ -1577,9 +1578,3 @@ def set_depreciation_settings_in_company(company=None): def enable_cwip_accounting(asset_category, enable=1): frappe.db.set_value("Asset Category", asset_category, "enable_cwip_accounting", enable) - - -def is_last_day_of_the_month(dt): - last_day_of_the_month = get_last_day(dt) - - return getdate(dt) == getdate(last_day_of_the_month) From 3f87a0eceb76810538b2da661d6b26e61728e4b2 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 31 Jan 2023 08:49:43 +0530 Subject: [PATCH 101/355] ci: bump isort to 5.12.0 (backport #33875) (#33879) ci: bump isort to 5.12.0 (#33875) [skip ci] (cherry picked from commit 2bad86d8d8220f4eb729c3a918ce0002f6b87693) Co-authored-by: Deepesh Garg --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 73aae33e9364..d70977c07e20 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -32,8 +32,8 @@ repos: - id: black additional_dependencies: ['click==8.0.4'] - - repo: https://github.com/timothycrosley/isort - rev: 5.9.1 + - repo: https://github.com/PyCQA/isort + rev: 5.12.0 hooks: - id: isort exclude: ".*setup.py$" From 1b79837e1b34994475d0c23b873de48b1849a5b8 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 31 Jan 2023 09:19:46 +0530 Subject: [PATCH 102/355] chore: Resize numeric and date columns (#33858) chore: Resize numeric and date columns (#33858) --- erpnext/accounts/report/general_ledger/general_ledger.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py index ab93893861bf..745b6dfbdce2 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.py +++ b/erpnext/accounts/report/general_ledger/general_ledger.py @@ -524,7 +524,7 @@ def get_columns(filters): "options": "GL Entry", "hidden": 1, }, - {"label": _("Posting Date"), "fieldname": "posting_date", "fieldtype": "Date", "width": 90}, + {"label": _("Posting Date"), "fieldname": "posting_date", "fieldtype": "Date", "width": 100}, { "label": _("Account"), "fieldname": "account", @@ -536,13 +536,13 @@ def get_columns(filters): "label": _("Debit ({0})").format(currency), "fieldname": "debit", "fieldtype": "Float", - "width": 100, + "width": 130, }, { "label": _("Credit ({0})").format(currency), "fieldname": "credit", "fieldtype": "Float", - "width": 100, + "width": 130, }, { "label": _("Balance ({0})").format(currency), From 44692e9b575e0af44d6d928a227e595953f71216 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 31 Jan 2023 09:20:10 +0530 Subject: [PATCH 103/355] fix: Lead to customer creation (#33859) fix: Lead to customer creation (#33859) (cherry picked from commit faecf3ee405abec3edf95fd9bf7790608852c2b5) Co-authored-by: Deepesh Garg --- erpnext/crm/doctype/lead/lead.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py index 5d3437c4a880..6443928bf66a 100644 --- a/erpnext/crm/doctype/lead/lead.py +++ b/erpnext/crm/doctype/lead/lead.py @@ -285,6 +285,7 @@ def set_missing_values(source, target): "contact_no": "phone_1", "fax": "fax_1", }, + "field_no_map": ["disabled"], } }, target_doc, From 5605f1e3efe931a5240e8878a911a48bf62713c6 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 31 Jan 2023 09:20:33 +0530 Subject: [PATCH 104/355] fix: Amount validation in Payment Request against Purchase Order (#33855) fix: Amount validation in Payment Request against Purchase Order (#33855) fix: Amount validation in Payment Request againt Purchase Order (cherry picked from commit a34a1f8fd26849993f4d66df740273fabd066d55) Co-authored-by: Deepesh Garg --- erpnext/accounts/doctype/payment_request/payment_request.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index d8c001161406..68c2a32715c1 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -51,7 +51,7 @@ def validate_payment_request_amount(self): if existing_payment_request_amount: ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name) - if hasattr(ref_doc, "order_type") and getattr(ref_doc, "order_type") != "Shopping Cart": + 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: From f54e8625f6d10bb8f2547314d1a4b16411c02047 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 31 Jan 2023 09:21:59 +0530 Subject: [PATCH 105/355] fix: Currency symbol for tax withholding net total field (#33850) * fix: Currency symbol for tax withholding net total field (#33850) --- .../accounts/doctype/purchase_invoice/purchase_invoice.json | 6 ++++-- erpnext/buying/doctype/purchase_order/purchase_order.json | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json index c5c8d00a2920..629a0ffb5822 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json @@ -1426,6 +1426,7 @@ }, { "default": "0", + "depends_on": "apply_tds", "fieldname": "tax_withholding_net_total", "fieldtype": "Currency", "hidden": 1, @@ -1435,12 +1436,13 @@ "read_only": 1 }, { + "depends_on": "apply_tds", "fieldname": "base_tax_withholding_net_total", "fieldtype": "Currency", "hidden": 1, "label": "Base Tax Withholding Net Total", "no_copy": 1, - "options": "currency", + "options": "Company:company:default_currency", "print_hide": 1, "read_only": 1 }, @@ -1554,7 +1556,7 @@ "idx": 204, "is_submittable": 1, "links": [], - "modified": "2022-12-14 18:37:38.142688", + "modified": "2023-01-28 19:18:56.586321", "modified_by": "Administrator", "module": "Accounts", "name": "Purchase Invoice", diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.json b/erpnext/buying/doctype/purchase_order/purchase_order.json index e1dd67978154..29afc8476e4f 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.json +++ b/erpnext/buying/doctype/purchase_order/purchase_order.json @@ -1221,6 +1221,7 @@ }, { "default": "0", + "depends_on": "apply_tds", "fieldname": "tax_withholding_net_total", "fieldtype": "Currency", "hidden": 1, @@ -1230,12 +1231,13 @@ "read_only": 1 }, { + "depends_on": "apply_tds", "fieldname": "base_tax_withholding_net_total", "fieldtype": "Currency", "hidden": 1, "label": "Base Tax Withholding Net Total", "no_copy": 1, - "options": "currency", + "options": "Company:company:default_currency", "print_hide": 1, "read_only": 1 }, @@ -1269,7 +1271,7 @@ "idx": 105, "is_submittable": 1, "links": [], - "modified": "2022-12-25 18:08:59.074182", + "modified": "2023-01-28 18:59:16.322824", "modified_by": "Administrator", "module": "Buying", "name": "Purchase Order", From 868c8d65aec951248944698463af62bbd53a38eb Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 31 Jan 2023 10:15:56 +0530 Subject: [PATCH 106/355] fix: Fetch commission rate from sales partner (#33851) fix: Fetch commission rate from sales partner (#33851) --- erpnext/accounts/doctype/sales_invoice/sales_invoice.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json index 67cd867b97c9..0c8ddeb2baec 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json @@ -1770,6 +1770,8 @@ "width": "50%" }, { + "fetch_from": "sales_partner.commission_rate", + "fetch_if_empty": 1, "fieldname": "commission_rate", "fieldtype": "Float", "hide_days": 1, @@ -2124,7 +2126,7 @@ "link_fieldname": "consolidated_invoice" } ], - "modified": "2022-12-12 18:34:33.409895", + "modified": "2023-01-28 19:45:47.538163", "modified_by": "Administrator", "module": "Accounts", "name": "Sales Invoice", From f487eae28e0ec5fe77cfaff8b1edd16a98992e7f Mon Sep 17 00:00:00 2001 From: Anand Baburajan Date: Tue, 31 Jan 2023 10:59:38 +0530 Subject: [PATCH 107/355] fix: manual depr entry not updating asset value [v14] (#33788) * fix: get value_after_depreciation functions and manual depr entry not updating asset value * fix: reflect manual depr entry in chart and fixed asset register * fix: add linked JEs in asset connections * chore: add test * chore: add patch and fix some things * chore: get depreciation_expense_account properly * chore: fix patch * chore: fix patch * chore: fix patch again * chore: rename var in patch * fix: filter assets with finance books properly * chore: refactor get_value_after_depreciation * chore: use dict format for filters in assets_linked_to_fb * chore: refactor update_asset_value * chore: sort manual depr entries --- .../doctype/journal_entry/journal_entry.py | 67 +++++++++++++--- erpnext/assets/doctype/asset/asset.js | 40 ++++++---- erpnext/assets/doctype/asset/asset.json | 8 +- erpnext/assets/doctype/asset/asset.py | 74 +++++++++++++----- erpnext/assets/doctype/asset/depreciation.py | 14 +--- erpnext/assets/doctype/asset/test_asset.py | 31 ++++++++ .../asset_capitalization.py | 10 +-- .../doctype/asset_repair/test_asset_repair.py | 17 ++--- .../asset_value_adjustment.js | 2 +- .../asset_value_adjustment.py | 16 ++-- .../test_asset_value_adjustment.py | 8 +- .../fixed_asset_register.py | 76 ++++++++++++++----- erpnext/patches.txt | 1 + ...ate_asset_value_for_manual_depr_entries.py | 38 ++++++++++ 14 files changed, 300 insertions(+), 102 deletions(-) create mode 100644 erpnext/patches/v14_0/update_asset_value_for_manual_depr_entries.py diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 88b030cae3d5..b9507b73e292 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -81,6 +81,7 @@ def on_submit(self): self.check_credit_limit() self.make_gl_entries() self.update_advance_paid() + self.update_asset_value() self.update_inter_company_jv() self.update_invoice_discounting() @@ -225,6 +226,34 @@ def apply_tax_withholding(self): for d in to_remove: self.remove(d) + def update_asset_value(self): + if self.voucher_type != "Depreciation Entry": + return + + processed_assets = [] + + for d in self.get("accounts"): + if ( + d.reference_type == "Asset" and d.reference_name and d.reference_name not in processed_assets + ): + processed_assets.append(d.reference_name) + + asset = frappe.db.get_value( + "Asset", d.reference_name, ["calculate_depreciation", "value_after_depreciation"], as_dict=1 + ) + + 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, + ) + def update_inter_company_jv(self): if ( self.voucher_type == "Inter Company Journal Entry" @@ -283,19 +312,39 @@ def unlink_advance_entry_reference(self): d.db_update() def unlink_asset_reference(self): + if self.voucher_type != "Depreciation Entry": + return + + processed_assets = [] + for d in self.get("accounts"): - if d.reference_type == "Asset" and d.reference_name: + if ( + d.reference_type == "Asset" and d.reference_name and d.reference_name not in processed_assets + ): + processed_assets.append(d.reference_name) + asset = frappe.get_doc("Asset", d.reference_name) - for s in asset.get("schedules"): - if s.journal_entry == self.name: - s.db_set("journal_entry", None) - idx = cint(s.finance_book_id) or 1 - finance_books = asset.get("finance_books")[idx - 1] - finance_books.value_after_depreciation += s.depreciation_amount - finance_books.db_update() + if asset.calculate_depreciation: + for s in asset.get("schedules"): + if s.journal_entry == self.name: + s.db_set("journal_entry", None) + + idx = cint(s.finance_book_id) or 1 + finance_books = asset.get("finance_books")[idx - 1] + finance_books.value_after_depreciation += s.depreciation_amount + finance_books.db_update() - asset.set_status() + asset.set_status() + 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, + ) def unlink_inter_company_jv(self): if ( diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js index 8940b28ca6cd..276cc925208d 100644 --- a/erpnext/assets/doctype/asset/asset.js +++ b/erpnext/assets/doctype/asset/asset.js @@ -205,7 +205,7 @@ frappe.ui.form.on('Asset', { }) }, - setup_chart: function(frm) { + setup_chart: async function(frm) { if(frm.doc.finance_books.length > 1) { return } @@ -223,20 +223,34 @@ frappe.ui.form.on('Asset', { flt(frm.doc.opening_accumulated_depreciation)); } - $.each(frm.doc.schedules || [], 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); + if(frm.doc.calculate_depreciation) { + $.each(frm.doc.schedules || [], 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 { - asset_values.push(asset_value) + if (in_list(["Scrapped", "Sold"], frm.doc.status)) { + asset_values.push(null); + } else { + asset_values.push(asset_value) + } } - } - }); + }); + } else { + 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; + let last_asset_value = asset_values[asset_values.length - 1] + asset_values.push(last_asset_value - v.value); + }); + } if(in_list(["Scrapped", "Sold"], frm.doc.status)) { x_intervals.push(frm.doc.disposal_date); diff --git a/erpnext/assets/doctype/asset/asset.json b/erpnext/assets/doctype/asset/asset.json index 5e6fe14ac04d..d581f52153e7 100644 --- a/erpnext/assets/doctype/asset/asset.json +++ b/erpnext/assets/doctype/asset/asset.json @@ -519,9 +519,15 @@ "group": "Value", "link_doctype": "Asset Value Adjustment", "link_fieldname": "asset" + }, + { + "group": "Journal Entry", + "link_doctype": "Journal Entry", + "link_fieldname": "reference_name", + "table_fieldname": "accounts" } ], - "modified": "2023-01-16 23:35:37.423100", + "modified": "2023-01-25 17:45:48.649543", "modified_by": "Administrator", "module": "Assets", "name": "Asset", diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 648cbb5b2be6..cd9f3b420d1f 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -244,7 +244,7 @@ def make_depreciation_schedule(self, date_of_disposal): def _make_depreciation_schedule(self, finance_book, start, date_of_disposal): self.validate_asset_finance_books(finance_book) - value_after_depreciation = self._get_value_after_depreciation(finance_book) + value_after_depreciation = self._get_value_after_depreciation_for_making_schedule(finance_book) finance_book.value_after_depreciation = value_after_depreciation number_of_pending_depreciations = cint(finance_book.total_number_of_depreciations) - cint( @@ -377,8 +377,7 @@ def sort_depreciation_schedule(self): for idx, s in enumerate(self.schedules, 1): s.idx = idx - def _get_value_after_depreciation(self, finance_book): - # value_after_depreciation - current Asset value + def _get_value_after_depreciation_for_making_schedule(self, finance_book): if self.docstatus == 1 and finance_book.value_after_depreciation: value_after_depreciation = flt(finance_book.value_after_depreciation) else: @@ -567,7 +566,9 @@ def set_accumulated_depreciation( if int(d.finance_book_id) not in finance_books: accumulated_depreciation = flt(self.opening_accumulated_depreciation) - value_after_depreciation = flt(self.get_value_after_depreciation(d.finance_book_id)) + value_after_depreciation = flt( + self.get("finance_books")[cint(d.finance_book_id) - 1].value_after_depreciation + ) finance_books.append(int(d.finance_book_id)) depreciation_amount = flt(d.depreciation_amount, d.precision("depreciation_amount")) @@ -592,9 +593,6 @@ def set_accumulated_depreciation( accumulated_depreciation, d.precision("accumulated_depreciation_amount") ) - def get_value_after_depreciation(self, idx): - return flt(self.get("finance_books")[cint(idx) - 1].value_after_depreciation) - def validate_expected_value_after_useful_life(self): for row in self.get("finance_books"): accumulated_depreciation_after_full_schedule = [ @@ -649,15 +647,20 @@ def cancel_movement_entries(self): movement.cancel() def delete_depreciation_entries(self): - for d in self.get("schedules"): - if d.journal_entry: - frappe.get_doc("Journal Entry", d.journal_entry).cancel() - d.db_set("journal_entry", None) - - self.db_set( - "value_after_depreciation", - (flt(self.gross_purchase_amount) - flt(self.opening_accumulated_depreciation)), - ) + if self.calculate_depreciation: + for d in self.get("schedules"): + if d.journal_entry: + frappe.get_doc("Journal Entry", d.journal_entry).cancel() + else: + depr_entries = self.get_manual_depreciation_entries() + + for depr_entry in depr_entries or []: + frappe.get_doc("Journal Entry", depr_entry.name).cancel() + + self.db_set( + "value_after_depreciation", + (flt(self.gross_purchase_amount) - flt(self.opening_accumulated_depreciation)), + ) def set_status(self, status=None): """Get and update status""" @@ -688,6 +691,17 @@ def get_status(self): status = "Cancelled" return status + def get_value_after_depreciation(self, finance_book=None): + if not self.calculate_depreciation: + return self.value_after_depreciation + + if not finance_book: + return self.get("finance_books")[0].value_after_depreciation + + for row in self.get("finance_books"): + if finance_book == row.finance_book: + return row.value_after_depreciation + def get_default_finance_book_idx(self): if not self.get("default_finance_book") and self.company: self.default_finance_book = erpnext.get_default_finance_book(self.company) @@ -813,6 +827,24 @@ def make_gl_entries(self): make_gl_entries(gl_entries) self.db_set("booked_fixed_asset", 1) + @frappe.whitelist() + def get_manual_depreciation_entries(self): + (_, _, depreciation_expense_account) = get_depreciation_accounts(self) + + gle = frappe.qb.DocType("GL Entry") + + records = ( + frappe.qb.from_(gle) + .select(gle.voucher_no.as_("name"), gle.debit.as_("value"), gle.posting_date) + .where(gle.against_voucher == self.name) + .where(gle.account == depreciation_expense_account) + .where(gle.debit != 0) + .where(gle.is_cancelled == 0) + .orderby(gle.posting_date) + ).run(as_dict=True) + + return records + @frappe.whitelist() def get_depreciation_rate(self, args, on_validate=False): if isinstance(args, str): @@ -857,7 +889,6 @@ def update_maintenance_status(): def make_post_gl_entry(): - asset_categories = frappe.db.get_all("Asset Category", fields=["name", "enable_cwip_accounting"]) for asset_category in asset_categories: @@ -1010,7 +1041,7 @@ def make_journal_entry(asset_name): depreciation_expense_account, ) = get_depreciation_accounts(asset) - depreciation_cost_center, depreciation_series = frappe.db.get_value( + depreciation_cost_center, depreciation_series = frappe.get_cached_value( "Company", asset.company, ["depreciation_cost_center", "series_for_depreciation_entry"] ) depreciation_cost_center = asset.cost_center or depreciation_cost_center @@ -1075,6 +1106,13 @@ def is_cwip_accounting_enabled(asset_category): return cint(frappe.db.get_value("Asset Category", asset_category, "enable_cwip_accounting")) +@frappe.whitelist() +def get_asset_value_after_depreciation(asset_name, finance_book=None): + asset = frappe.get_doc("Asset", asset_name) + + return asset.get_value_after_depreciation(finance_book) + + def get_total_days(date, frequency): period_start_date = add_months(date, cint(frequency) * -1) diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py index 220534b93884..196288e9e67e 100644 --- a/erpnext/assets/doctype/asset/depreciation.py +++ b/erpnext/assets/doctype/asset/depreciation.py @@ -494,18 +494,8 @@ def get_asset_details(asset, finance_book=None): disposal_account, depreciation_cost_center = get_disposal_account_and_cost_center(asset.company) depreciation_cost_center = asset.cost_center or depreciation_cost_center - idx = 1 - if finance_book: - for d in asset.finance_books: - if d.finance_book == finance_book: - idx = d.idx - break - - value_after_depreciation = ( - asset.finance_books[idx - 1].value_after_depreciation - if asset.calculate_depreciation - else asset.value_after_depreciation - ) + value_after_depreciation = asset.get_value_after_depreciation(finance_book) + accumulated_depr_amount = flt(asset.gross_purchase_amount) - flt(value_after_depreciation) return ( diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 0d6c54c6b1b0..71f578c67030 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -15,6 +15,7 @@ nowdate, ) +from erpnext.accounts.doctype.journal_entry.test_journal_entry import make_journal_entry from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice from erpnext.assets.doctype.asset.asset import ( make_sales_invoice, @@ -1442,6 +1443,36 @@ def test_depreciation_on_final_day_of_the_month(self): for i, schedule in enumerate(asset.schedules): self.assertEqual(getdate(expected_dates[i]), getdate(schedule.schedule_date)) + def test_manual_depreciation_for_existing_asset(self): + asset = create_asset( + item_code="Macbook Pro", + is_existing_asset=1, + purchase_date="2020-01-30", + available_for_use_date="2020-01-30", + submit=1, + ) + + self.assertEqual(asset.status, "Submitted") + self.assertEqual(asset.get("value_after_depreciation"), 100000) + + jv = make_journal_entry( + "_Test Depreciations - _TC", "_Test Accumulated Depreciations - _TC", 100, save=False + ) + for d in jv.accounts: + d.reference_type = "Asset" + d.reference_name = asset.name + jv.voucher_type = "Depreciation Entry" + jv.insert() + jv.submit() + + asset.reload() + self.assertEqual(asset.get("value_after_depreciation"), 99900) + + jv.cancel() + + asset.reload() + self.assertEqual(asset.get("value_after_depreciation"), 100000) + def create_asset_data(): if not frappe.db.exists("Asset Category", "Computers"): diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py index 08355f047e56..90b4d7e58343 100644 --- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py +++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py @@ -11,6 +11,7 @@ from six import string_types import erpnext +from erpnext.assets.doctype.asset.asset import get_asset_value_after_depreciation from erpnext.assets.doctype.asset.depreciation import ( depreciate_asset, get_gl_entries_on_asset_disposal, @@ -19,9 +20,6 @@ reverse_depreciation_entry_made_after_disposal, ) from erpnext.assets.doctype.asset_category.asset_category import get_asset_category_account -from erpnext.assets.doctype.asset_value_adjustment.asset_value_adjustment import ( - get_current_asset_value, -) from erpnext.controllers.stock_controller import StockController from erpnext.setup.doctype.brand.brand import get_brand_defaults from erpnext.setup.doctype.item_group.item_group import get_item_group_defaults @@ -259,7 +257,9 @@ def set_asset_values(self): for d in self.get("asset_items"): if d.asset: finance_book = d.get("finance_book") or self.get("finance_book") - d.current_asset_value = flt(get_current_asset_value(d.asset, finance_book=finance_book)) + d.current_asset_value = flt( + get_asset_value_after_depreciation(d.asset, finance_book=finance_book) + ) d.asset_value = get_value_after_depreciation_on_disposal_date( d.asset, self.posting_date, finance_book=finance_book ) @@ -696,7 +696,7 @@ def get_consumed_asset_details(args): if args.asset: out.current_asset_value = flt( - get_current_asset_value(args.asset, finance_book=args.finance_book) + get_asset_value_after_depreciation(args.asset, finance_book=args.finance_book) ) out.asset_value = get_value_after_depreciation_on_disposal_date( args.asset, args.posting_date, finance_book=args.finance_book diff --git a/erpnext/assets/doctype/asset_repair/test_asset_repair.py b/erpnext/assets/doctype/asset_repair/test_asset_repair.py index 6599c078231d..3adb35169089 100644 --- a/erpnext/assets/doctype/asset_repair/test_asset_repair.py +++ b/erpnext/assets/doctype/asset_repair/test_asset_repair.py @@ -6,7 +6,10 @@ import frappe from frappe.utils import flt, nowdate -from erpnext.assets.doctype.asset.asset import get_asset_account +from erpnext.assets.doctype.asset.asset import ( + get_asset_account, + get_asset_value_after_depreciation, +) from erpnext.assets.doctype.asset.test_asset import ( create_asset, create_asset_data, @@ -106,20 +109,20 @@ def test_serialized_item_consumption(self): def test_increase_in_asset_value_due_to_stock_consumption(self): asset = create_asset(calculate_depreciation=1, submit=1) - initial_asset_value = get_asset_value(asset) + initial_asset_value = get_asset_value_after_depreciation(asset.name) asset_repair = create_asset_repair(asset=asset, stock_consumption=1, submit=1) asset.reload() - increase_in_asset_value = get_asset_value(asset) - initial_asset_value + increase_in_asset_value = get_asset_value_after_depreciation(asset.name) - initial_asset_value self.assertEqual(asset_repair.stock_items[0].total_value, increase_in_asset_value) def test_increase_in_asset_value_due_to_repair_cost_capitalisation(self): asset = create_asset(calculate_depreciation=1, submit=1) - initial_asset_value = get_asset_value(asset) + initial_asset_value = get_asset_value_after_depreciation(asset.name) asset_repair = create_asset_repair(asset=asset, capitalize_repair_cost=1, submit=1) asset.reload() - increase_in_asset_value = get_asset_value(asset) - initial_asset_value + increase_in_asset_value = get_asset_value_after_depreciation(asset.name) - initial_asset_value self.assertEqual(asset_repair.repair_cost, increase_in_asset_value) def test_purchase_invoice(self): @@ -244,10 +247,6 @@ def test_increase_in_asset_life(self): ) -def get_asset_value(asset): - return asset.finance_books[0].value_after_depreciation - - def num_of_depreciations(asset): return asset.finance_books[0].total_number_of_depreciations diff --git a/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.js b/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.js index 36f510b18ee3..ae0e1bda0204 100644 --- a/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.js +++ b/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.js @@ -47,7 +47,7 @@ frappe.ui.form.on('Asset Value Adjustment', { set_current_asset_value: function(frm) { if (frm.doc.asset) { frm.call({ - method: "erpnext.assets.doctype.asset_value_adjustment.asset_value_adjustment.get_current_asset_value", + method: "erpnext.assets.doctype.asset.asset.get_asset_value_after_depreciation", args: { asset: frm.doc.asset, finance_book: frm.doc.finance_book diff --git a/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py b/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py index 59ab6a910d2f..e718472e1642 100644 --- a/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py +++ b/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py @@ -10,7 +10,10 @@ from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import ( get_checks_for_pl_and_bs_accounts, ) -from erpnext.assets.doctype.asset.asset import get_depreciation_amount +from erpnext.assets.doctype.asset.asset import ( + get_asset_value_after_depreciation, + get_depreciation_amount, +) from erpnext.assets.doctype.asset.depreciation import get_depreciation_accounts @@ -42,7 +45,7 @@ def set_difference_amount(self): def set_current_asset_value(self): if not self.current_asset_value and self.asset: - self.current_asset_value = get_current_asset_value(self.asset, self.finance_book) + self.current_asset_value = get_asset_value_after_depreciation(self.asset, self.finance_book) def make_depreciation_entry(self): asset = frappe.get_doc("Asset", self.asset) @@ -142,12 +145,3 @@ def reschedule_depreciations(self, asset_value): for asset_data in asset.schedules: if not asset_data.journal_entry: asset_data.db_update() - - -@frappe.whitelist() -def get_current_asset_value(asset, finance_book=None): - cond = {"parent": asset, "parenttype": "Asset"} - if finance_book: - cond.update({"finance_book": finance_book}) - - return frappe.db.get_value("Asset Finance Book", cond, "value_after_depreciation") diff --git a/erpnext/assets/doctype/asset_value_adjustment/test_asset_value_adjustment.py b/erpnext/assets/doctype/asset_value_adjustment/test_asset_value_adjustment.py index 62c636624cef..b2aa3958080b 100644 --- a/erpnext/assets/doctype/asset_value_adjustment/test_asset_value_adjustment.py +++ b/erpnext/assets/doctype/asset_value_adjustment/test_asset_value_adjustment.py @@ -6,10 +6,8 @@ import frappe from frappe.utils import add_days, get_last_day, nowdate +from erpnext.assets.doctype.asset.asset import get_asset_value_after_depreciation from erpnext.assets.doctype.asset.test_asset import create_asset_data -from erpnext.assets.doctype.asset_value_adjustment.asset_value_adjustment import ( - get_current_asset_value, -) from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_purchase_receipt @@ -43,7 +41,7 @@ def test_current_asset_value(self): ) asset_doc.submit() - current_value = get_current_asset_value(asset_doc.name) + current_value = get_asset_value_after_depreciation(asset_doc.name) self.assertEqual(current_value, 100000.0) def test_asset_depreciation_value_adjustment(self): @@ -73,7 +71,7 @@ def test_asset_depreciation_value_adjustment(self): ) asset_doc.submit() - current_value = get_current_asset_value(asset_doc.name) + current_value = get_asset_value_after_depreciation(asset_doc.name) adj_doc = make_asset_value_adjustment( asset=asset_doc.name, current_asset_value=current_value, new_asset_value=50000.0 ) 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 dd5dfca8a224..5bfd4840d73d 100644 --- a/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py +++ b/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py @@ -4,13 +4,16 @@ import frappe from frappe import _ -from frappe.utils import cstr, flt, formatdate, getdate +from frappe.query_builder.functions import Sum +from frappe.utils import cstr, formatdate, getdate from erpnext.accounts.report.financial_statements import ( get_fiscal_year_data, get_period_list, validate_fiscal_year, ) +from erpnext.assets.doctype.asset.asset import get_asset_value_after_depreciation +from erpnext.assets.doctype.asset.depreciation import get_depreciation_accounts def execute(filters=None): @@ -85,6 +88,7 @@ def get_data(filters): "asset_name", "status", "department", + "company", "cost_center", "calculate_depreciation", "purchase_receipt", @@ -98,8 +102,25 @@ def get_data(filters): ] 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}, + pluck="parent", + ) + for asset in assets_record: - asset_value = get_asset_value(asset, filters.finance_book) + if filters.finance_book: + if asset.asset_id not in assets_linked_to_fb: + continue + else: + if asset.calculate_depreciation and asset.asset_id not in assets_linked_to_fb: + continue + + asset_value = get_asset_value_after_depreciation(asset.asset_id, filters.finance_book) row = { "asset_id": asset.asset_id, "asset_name": asset.asset_name, @@ -110,7 +131,7 @@ def get_data(filters): or pi_supplier_map.get(asset.purchase_invoice), "gross_purchase_amount": asset.gross_purchase_amount, "opening_accumulated_depreciation": asset.opening_accumulated_depreciation, - "depreciated_amount": depreciation_amount_map.get(asset.asset_id) or 0.0, + "depreciated_amount": get_depreciation_amount_of_asset(asset, depreciation_amount_map, filters), "available_for_use_date": asset.available_for_use_date, "location": asset.location, "asset_category": asset.asset_category, @@ -122,21 +143,6 @@ def get_data(filters): return data -def get_asset_value(asset, finance_book=None): - if not asset.calculate_depreciation: - return flt(asset.gross_purchase_amount) - flt(asset.opening_accumulated_depreciation) - - finance_book_filter = ["finance_book", "is", "not set"] - if finance_book: - finance_book_filter = ["finance_book", "=", finance_book] - - return frappe.db.get_value( - doctype="Asset Finance Book", - filters=[["parent", "=", asset.asset_id], finance_book_filter], - fieldname="value_after_depreciation", - ) - - def prepare_chart_data(data, filters): labels_values_map = {} date_field = frappe.scrub(filters.date_based_on) @@ -182,6 +188,15 @@ def prepare_chart_data(data, filters): } +def get_depreciation_amount_of_asset(asset, depreciation_amount_map, filters): + if asset.calculate_depreciation: + depr_amount = depreciation_amount_map.get(asset.asset_id) or 0.0 + else: + depr_amount = get_manual_depreciation_amount_of_asset(asset, filters) + + return depr_amount + + def get_finance_book_value_map(filters): date = filters.to_date if filters.filter_based_on == "Date Range" else filters.year_end_date @@ -201,6 +216,31 @@ def get_finance_book_value_map(filters): ) +def get_manual_depreciation_amount_of_asset(asset, filters): + date = filters.to_date if filters.filter_based_on == "Date Range" else filters.year_end_date + + (_, _, depreciation_expense_account) = get_depreciation_accounts(asset) + + gle = frappe.qb.DocType("GL Entry") + + result = ( + frappe.qb.from_(gle) + .select(Sum(gle.debit)) + .where(gle.against_voucher == asset.asset_id) + .where(gle.account == depreciation_expense_account) + .where(gle.debit != 0) + .where(gle.is_cancelled == 0) + .where(gle.posting_date <= date) + ).run() + + if result and result[0] and result[0][0]: + depr_amount = result[0][0] + else: + depr_amount = 0 + + return depr_amount + + def get_purchase_receipt_supplier_map(): return frappe._dict( frappe.db.sql( diff --git a/erpnext/patches.txt b/erpnext/patches.txt index a6c822a1a14d..9dcb9c1bcae5 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -325,3 +325,4 @@ erpnext.patches.v14_0.setup_clear_repost_logs erpnext.patches.v14_0.create_accounting_dimensions_for_payment_request erpnext.patches.v14_0.update_entry_type_for_journal_entry erpnext.patches.v14_0.change_autoname_for_tax_withheld_vouchers +erpnext.patches.v14_0.update_asset_value_for_manual_depr_entries diff --git a/erpnext/patches/v14_0/update_asset_value_for_manual_depr_entries.py b/erpnext/patches/v14_0/update_asset_value_for_manual_depr_entries.py new file mode 100644 index 000000000000..5d7b5cf19c18 --- /dev/null +++ b/erpnext/patches/v14_0/update_asset_value_for_manual_depr_entries.py @@ -0,0 +1,38 @@ +import frappe +from frappe.query_builder.functions import IfNull, Sum + + +def execute(): + asset = frappe.qb.DocType("Asset") + gle = frappe.qb.DocType("GL Entry") + aca = frappe.qb.DocType("Asset Category Account") + company = frappe.qb.DocType("Company") + + asset_total_depr_value_map = ( + frappe.qb.from_(gle) + .join(asset) + .on(gle.against_voucher == asset.name) + .join(aca) + .on((aca.parent == asset.asset_category) & (aca.company_name == asset.company)) + .join(company) + .on(company.name == asset.company) + .select(Sum(gle.debit).as_("value"), asset.name.as_("asset_name")) + .where( + gle.account == IfNull(aca.depreciation_expense_account, company.depreciation_expense_account) + ) + .where(gle.debit != 0) + .where(gle.is_cancelled == 0) + .where(asset.docstatus == 1) + .where(asset.calculate_depreciation == 0) + .groupby(asset.name) + ) + + frappe.qb.update(asset).join(asset_total_depr_value_map).on( + asset_total_depr_value_map.asset_name == asset.name + ).set( + asset.value_after_depreciation, asset.value_after_depreciation - asset_total_depr_value_map.value + ).where( + asset.docstatus == 1 + ).where( + asset.calculate_depreciation == 0 + ).run() From c8226ff64240bbed254aa37d77a885247d31a527 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 31 Jan 2023 06:20:11 +0000 Subject: [PATCH 108/355] chore(release): Bumped to Version 14.15.0 # [14.15.0](https://github.com/frappe/erpnext/compare/v14.14.0...v14.15.0) (2023-01-31) ### Bug Fixes * Amount validation in Payment Request against Purchase Order ([#33855](https://github.com/frappe/erpnext/issues/33855)) ([5605f1e](https://github.com/frappe/erpnext/commit/5605f1e3efe931a5240e8878a911a48bf62713c6)) * Currency symbol for tax withholding net total field ([#33850](https://github.com/frappe/erpnext/issues/33850)) ([f54e862](https://github.com/frappe/erpnext/commit/f54e8625f6d10bb8f2547314d1a4b16411c02047)) * disfuctional cost center filter on Journal Entries ([#33815](https://github.com/frappe/erpnext/issues/33815)) ([58c3e16](https://github.com/frappe/erpnext/commit/58c3e16fec68da1e784800daee76e0f13edd4ed7)) * disposal_was_made_on_original_schedule_date ([4586806](https://github.com/frappe/erpnext/commit/4586806ed12fc3817563c3b2cf660b611dd50815)) * double salutation on quotation print ([#33834](https://github.com/frappe/erpnext/issues/33834)) ([0fcf364](https://github.com/frappe/erpnext/commit/0fcf364aaada1d08bef06369ccbdcabfb5ad2935)) * Fetch commission rate from sales partner ([#33851](https://github.com/frappe/erpnext/issues/33851)) ([868c8d6](https://github.com/frappe/erpnext/commit/868c8d65aec951248944698463af62bbd53a38eb)) * **gp:** fetch buying amount from dn related to so ([f5bde9c](https://github.com/frappe/erpnext/commit/f5bde9cf6d5ec61b3e8c011c9dfe289dba54fb9a)) * GST Category validation broken for pos unregistered customer who dont have address. ([#33800](https://github.com/frappe/erpnext/issues/33800)) ([f124dd3](https://github.com/frappe/erpnext/commit/f124dd31120b52a4de15e8ba612ba82e5ed521d0)) * Ignore linked JE on JE cancellation ([#33852](https://github.com/frappe/erpnext/issues/33852)) ([a0e1ee0](https://github.com/frappe/erpnext/commit/a0e1ee0450478782a2ca320fbc3080703c954b2a)) * item rate not fetching ([b98d351](https://github.com/frappe/erpnext/commit/b98d3514ab1bef6a6a26f2b5c0a3c9dde0f0b6fc)) * Lead to customer creation ([#33859](https://github.com/frappe/erpnext/issues/33859)) ([44692e9](https://github.com/frappe/erpnext/commit/44692e9b575e0af44d6d928a227e595953f71216)) * manual depr entry not updating asset value [v14] ([#33788](https://github.com/frappe/erpnext/issues/33788)) ([f487eae](https://github.com/frappe/erpnext/commit/f487eae28e0ec5fe77cfaff8b1edd16a98992e7f)) * **patch:** validation error on cost center allocation migration ([#33835](https://github.com/frappe/erpnext/issues/33835)) ([5d4967c](https://github.com/frappe/erpnext/commit/5d4967ceeefe9504f421d2230a08bb23f57eca5b)) * use correct filter name in `item_query` (backport [#33814](https://github.com/frappe/erpnext/issues/33814)) ([#33816](https://github.com/frappe/erpnext/issues/33816)) ([f7eabca](https://github.com/frappe/erpnext/commit/f7eabcafde23e02b1db7209549462abbbf4aafde)) ### Features * **gp:** test for inv and dn related via so ([7a793ea](https://github.com/frappe/erpnext/commit/7a793ea58888801e1852756f102455255958be5b)) ### Performance Improvements * show update items dialog ([ac2ebfb](https://github.com/frappe/erpnext/commit/ac2ebfbf5942dc127aec8ed05bba864007a89258)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 0cb2b7ef2a01..f59e1633b71f 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.14.0" +__version__ = "14.15.0" def get_default_company(user=None): From f1dd923a501989d0718a7ddc84b1f10397e77711 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 26 Jan 2023 12:51:58 +0530 Subject: [PATCH 109/355] fix: `amount` in `Material Request` (cherry picked from commit 6b781d78e0cfb256621d8b40bc21ed144b75f501) --- erpnext/stock/doctype/material_request/material_request.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js index 5f05de6991b2..156e5917f23c 100644 --- a/erpnext/stock/doctype/material_request/material_request.js +++ b/erpnext/stock/doctype/material_request/material_request.js @@ -366,10 +366,11 @@ frappe.ui.form.on('Material Request', { frappe.ui.form.on("Material Request Item", { qty: function (frm, doctype, name) { - var d = locals[doctype][name]; - if (flt(d.qty) < flt(d.min_order_qty)) { + const item = locals[doctype][name]; + if (flt(item.qty) < flt(item.min_order_qty)) { frappe.msgprint(__("Warning: Material Requested Qty is less than Minimum Order Qty")); } + frm.events.get_item_data(frm, item, false); }, from_warehouse: function(frm, doctype, name) { From a5d09270cbeb118afcea4d362c2d8ac91b1d955b Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sat, 21 Jan 2023 11:28:23 +0530 Subject: [PATCH 110/355] refactor: rewrite `get_picked_items_qty` query in `QB` (cherry picked from commit 29bf787313092e7a261479af36110613c7d0357b) --- erpnext/stock/doctype/pick_list/pick_list.py | 39 +++++++++----------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index 808f19e2740e..caafcdda3319 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -347,28 +347,23 @@ def _compute_picked_qty_for_bundle(self, bundle_row, bundle_items) -> int: def get_picked_items_qty(items) -> List[Dict]: - return frappe.db.sql( - f""" - SELECT - sales_order_item, - item_code, - sales_order, - SUM(stock_qty) AS stock_qty, - SUM(picked_qty) AS picked_qty - FROM - `tabPick List Item` - WHERE - sales_order_item IN ( - {", ".join(frappe.db.escape(d) for d in items)} - ) - AND docstatus = 1 - GROUP BY - sales_order_item, - sales_order - FOR UPDATE - """, - as_dict=1, - ) + pi_item = frappe.qb.DocType("Pick List Item") + return ( + frappe.qb.from_(pi_item) + .select( + pi_item.sales_order_item, + pi_item.item_code, + pi_item.sales_order, + Sum(pi_item.stock_qty).as_("stock_qty"), + Sum(pi_item.picked_qty).as_("picked_qty"), + ) + .where((pi_item.docstatus == 1) & (pi_item.sales_order_item.isin(items))) + .groupby( + pi_item.sales_order_item, + pi_item.sales_order, + ) + .for_update() + ).run(as_dict=True) def validate_item_locations(pick_list): From 167a5596cbfb485ea0567994765eae2715325c4f Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sat, 21 Jan 2023 12:15:45 +0530 Subject: [PATCH 111/355] refactor: rewrite `get_available_item_locations_for_other_item` query in `QB` (cherry picked from commit 58dd40a2d7915c6b4ae99b72e8d35915394b57f6) --- erpnext/stock/doctype/pick_list/pick_list.py | 25 ++++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index caafcdda3319..4f111a2aa951 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -555,23 +555,22 @@ def get_available_item_locations_for_serial_and_batched_item( def get_available_item_locations_for_other_item(item_code, from_warehouses, required_qty, company): - # gets all items available in different warehouses - warehouses = [x.get("name") for x in frappe.get_list("Warehouse", {"company": company}, "name")] - - filters = frappe._dict( - {"item_code": item_code, "warehouse": ["in", warehouses], "actual_qty": [">", 0]} + bin = frappe.qb.DocType("Bin") + query = ( + frappe.qb.from_(bin) + .select(bin.warehouse, bin.actual_qty.as_("qty")) + .where((bin.item_code == item_code) & (bin.actual_qty > 0)) + .orderby(bin.creation) + .limit(cint(required_qty)) ) if from_warehouses: - filters.warehouse = ["in", from_warehouses] + query = query.where(bin.warehouse.isin(from_warehouses)) + else: + wh = frappe.qb.DocType("Warehouse") + query = query.from_(wh).where((bin.warehouse == wh.name) & (wh.company == company)) - item_locations = frappe.get_all( - "Bin", - fields=["warehouse", "actual_qty as qty"], - filters=filters, - limit=required_qty, - order_by="creation", - ) + item_locations = query.run(as_dict=True) return item_locations From d9d986a5123aaca2c1afeffd45c38d0739e43d17 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sat, 21 Jan 2023 12:45:39 +0530 Subject: [PATCH 112/355] refactor: rewrite `get_available_item_locations_for_serialized_item` query in `QB` (cherry picked from commit 5b76e8b19370eb76471f6b59873900d9f2977959) --- erpnext/stock/doctype/pick_list/pick_list.py | 26 +++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index 4f111a2aa951..f053474b28f1 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -11,7 +11,7 @@ from frappe.model.document import Document from frappe.model.mapper import map_child_doc from frappe.query_builder import Case -from frappe.query_builder.functions import IfNull, Locate, Sum +from frappe.query_builder.functions import Coalesce, IfNull, Locate, Sum from frappe.utils import cint, floor, flt, today from frappe.utils.nestedset import get_descendants_of @@ -470,19 +470,21 @@ def get_available_item_locations( def get_available_item_locations_for_serialized_item( item_code, from_warehouses, required_qty, company ): - filters = frappe._dict({"item_code": item_code, "company": company, "warehouse": ["!=", ""]}) + sn = frappe.qb.DocType("Serial No") + query = ( + frappe.qb.from_(sn) + .select(sn.name, sn.warehouse) + .where((sn.item_code == item_code) & (sn.company == company)) + .orderby(sn.purchase_date) + .limit(cint(required_qty)) + ) if from_warehouses: - filters.warehouse = ["in", from_warehouses] - - serial_nos = frappe.get_all( - "Serial No", - fields=["name", "warehouse"], - filters=filters, - limit=required_qty, - order_by="purchase_date", - as_list=1, - ) + query = query.where(sn.warehouse.isin(from_warehouses)) + else: + query = query.where(Coalesce(sn.warehouse, "") != "") + + serial_nos = query.run(as_list=True) warehouse_serial_nos_map = frappe._dict() for serial_no, warehouse in serial_nos: From 6166a6e64f143d6b4f41b48a91b08d85b11abaea Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sat, 21 Jan 2023 14:05:51 +0530 Subject: [PATCH 113/355] refactor: rewrite `get_available_item_locations_for_serial_and_batched_item` query in `QB` (cherry picked from commit 57c32166831912603b283208ff08c9fdffcb0d95) --- erpnext/stock/doctype/pick_list/pick_list.py | 37 +++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index f053474b28f1..4e5705710051 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -534,24 +534,27 @@ def get_available_item_locations_for_serial_and_batched_item( item_code, from_warehouses, required_qty, company ) - filters = frappe._dict( - {"item_code": item_code, "company": company, "warehouse": ["!=", ""], "batch_no": ""} - ) - - # Get Serial Nos by FIFO for Batch No - for location in locations: - filters.batch_no = location.batch_no - filters.warehouse = location.warehouse - location.qty = ( - required_qty if location.qty > required_qty else location.qty - ) # if extra qty in batch - - serial_nos = frappe.get_list( - "Serial No", fields=["name"], filters=filters, limit=location.qty, order_by="purchase_date" - ) + if locations: + sn = frappe.qb.DocType("Serial No") + conditions = (sn.item_code == item_code) & (sn.company == company) + + for location in locations: + location.qty = ( + required_qty if location.qty > required_qty else location.qty + ) # if extra qty in batch + + serial_nos = ( + frappe.qb.from_(sn) + .select(sn.name) + .where( + (conditions) & (sn.batch_no == location.batch_no) & (sn.warehouse == location.warehouse) + ) + .orderby(sn.purchase_date) + .limit(cint(location.qty)) + ).run(as_dict=True) - serial_nos = [sn.name for sn in serial_nos] - location.serial_no = serial_nos + serial_nos = [sn.name for sn in serial_nos] + location.serial_no = serial_nos return locations From 140be10060a27e299b1bc5738f6a14d8ffbbb049 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sat, 21 Jan 2023 20:58:47 +0530 Subject: [PATCH 114/355] chore: add method `get_picked_items_details()` (cherry picked from commit 9ae3a54ce96e1bce5d32fadb25fbc3da399f838a) --- erpnext/stock/doctype/pick_list/pick_list.py | 44 ++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index 4e5705710051..e572540a04c2 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -162,6 +162,7 @@ def validate_picked_qty(self, data): def set_item_locations(self, save=False): self.validate_for_qty() items = self.aggregate_item_qty() + picked_items_details = self.get_picked_items_details(items) self.item_location_map = frappe._dict() from_warehouses = None @@ -309,6 +310,49 @@ def update_bundle_picked_qty(self): already_picked + (picked_qty * (1 if self.docstatus == 1 else -1)), ) + def get_picked_items_details(self, items): + picked_items = frappe._dict() + + pi_item = frappe.qb.DocType("Pick List Item") + query = ( + frappe.qb.from_(pi_item) + .select( + pi_item.item_code, + pi_item.warehouse, + pi_item.batch_no, + pi_item.serial_no, + Sum(pi_item.picked_qty).as_("picked_qty"), + ) + .where( + (pi_item.item_code.isin([x.item_code for x in items])) + & (pi_item.docstatus != 2) + & (pi_item.picked_qty > 0) + ) + .groupby( + pi_item.item_code, + pi_item.warehouse, + pi_item.batch_no, + ) + ) + + if self.name: + query = query.where(pi_item.parent != self.name) + + items_data = query.run(as_dict=True) + + for item_data in items_data: + key = (item_data.warehouse, item_data.batch_no) if item_data.batch_no else item_data.warehouse + serial_no = [x for x in item_data.serial_no.split("\n") if x] if item_data.serial_no else None + data = {"picked_qty": item_data.picked_qty} + if serial_no: + data["serial_no"] = serial_no + if item_data.item_code not in picked_items: + picked_items[item_data.item_code] = {key: data} + else: + picked_items[item_data.item_code][key] = data + + return picked_items + def _get_product_bundles(self) -> Dict[str, str]: # Dict[so_item_row: item_code] product_bundles = {} From 466a791f68643cae1d2f1323039e786aace9be77 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Mon, 23 Jan 2023 13:51:07 +0530 Subject: [PATCH 115/355] fix: consider existing pick list (cherry picked from commit b642718f08472294b6cc1cbdd5d344dcc0f5059d) --- erpnext/stock/doctype/pick_list/pick_list.py | 76 ++++++++++++++++---- 1 file changed, 62 insertions(+), 14 deletions(-) diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index e572540a04c2..7b75bb0ffd3a 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -181,7 +181,11 @@ def set_item_locations(self, save=False): self.item_location_map.setdefault( item_code, get_available_item_locations( - item_code, from_warehouses, self.item_count_map.get(item_code), self.company + item_code, + from_warehouses, + self.item_count_map.get(item_code), + self.company, + picked_item_details=picked_items_details.get(item_code), ), ) @@ -473,31 +477,38 @@ def get_items_with_location_and_quantity(item_doc, item_location_map, docstatus) def get_available_item_locations( - item_code, from_warehouses, required_qty, company, ignore_validation=False + item_code, + from_warehouses, + required_qty, + company, + ignore_validation=False, + picked_item_details=None, ): locations = [] + total_picked_qty = ( + sum([v.get("picked_qty") for k, v in picked_item_details.items()]) if picked_item_details else 0 + ) has_serial_no = frappe.get_cached_value("Item", item_code, "has_serial_no") has_batch_no = frappe.get_cached_value("Item", item_code, "has_batch_no") if has_batch_no and has_serial_no: locations = get_available_item_locations_for_serial_and_batched_item( - item_code, from_warehouses, required_qty, company + item_code, from_warehouses, required_qty, company, total_picked_qty ) elif has_serial_no: locations = get_available_item_locations_for_serialized_item( - item_code, from_warehouses, required_qty, company + item_code, from_warehouses, required_qty, company, total_picked_qty ) elif has_batch_no: locations = get_available_item_locations_for_batched_item( - item_code, from_warehouses, required_qty, company + item_code, from_warehouses, required_qty, company, total_picked_qty ) else: locations = get_available_item_locations_for_other_item( - item_code, from_warehouses, required_qty, company + item_code, from_warehouses, required_qty, company, total_picked_qty ) total_qty_available = sum(location.get("qty") for location in locations) - remaining_qty = required_qty - total_qty_available if remaining_qty > 0 and not ignore_validation: @@ -508,11 +519,44 @@ def get_available_item_locations( title=_("Insufficient Stock"), ) + if picked_item_details: + for location in list(locations): + key = ( + (location["warehouse"], location["batch_no"]) + if location.get("batch_no") + else location["warehouse"] + ) + + if key in picked_item_details: + picked_detail = picked_item_details[key] + + if picked_detail.get("serial_no") and location.get("serial_no"): + location["serial_no"] = list( + set(location["serial_no"]).difference(set(picked_detail["serial_no"])) + ) + location["qty"] = len(location["serial_no"]) + else: + location["qty"] -= picked_detail.get("picked_qty") + + if location["qty"] < 1: + locations.remove(location) + + total_qty_available = sum(location.get("qty") for location in locations) + remaining_qty = required_qty - total_qty_available + + if remaining_qty > 0 and not ignore_validation: + frappe.msgprint( + _("{0} units of Item {1} is picked in another Pick List.").format( + remaining_qty, frappe.get_desk_link("Item", item_code) + ), + title=_("Already Picked"), + ) + return locations def get_available_item_locations_for_serialized_item( - item_code, from_warehouses, required_qty, company + item_code, from_warehouses, required_qty, company, total_picked_qty=0 ): sn = frappe.qb.DocType("Serial No") query = ( @@ -520,7 +564,7 @@ def get_available_item_locations_for_serialized_item( .select(sn.name, sn.warehouse) .where((sn.item_code == item_code) & (sn.company == company)) .orderby(sn.purchase_date) - .limit(cint(required_qty)) + .limit(cint(required_qty + total_picked_qty)) ) if from_warehouses: @@ -542,7 +586,7 @@ def get_available_item_locations_for_serialized_item( def get_available_item_locations_for_batched_item( - item_code, from_warehouses, required_qty, company + item_code, from_warehouses, required_qty, company, total_picked_qty=0 ): sle = frappe.qb.DocType("Stock Ledger Entry") batch = frappe.qb.DocType("Batch") @@ -562,6 +606,7 @@ def get_available_item_locations_for_batched_item( .groupby(sle.warehouse, sle.batch_no, sle.item_code) .having(Sum(sle.actual_qty) > 0) .orderby(IfNull(batch.expiry_date, "2200-01-01"), batch.creation, sle.batch_no, sle.warehouse) + .limit(cint(required_qty + total_picked_qty)) ) if from_warehouses: @@ -571,7 +616,7 @@ def get_available_item_locations_for_batched_item( def get_available_item_locations_for_serial_and_batched_item( - item_code, from_warehouses, required_qty, company + item_code, from_warehouses, required_qty, company, total_picked_qty=0 ): # Get batch nos by FIFO locations = get_available_item_locations_for_batched_item( @@ -594,23 +639,26 @@ def get_available_item_locations_for_serial_and_batched_item( (conditions) & (sn.batch_no == location.batch_no) & (sn.warehouse == location.warehouse) ) .orderby(sn.purchase_date) - .limit(cint(location.qty)) + .limit(cint(location.qty + total_picked_qty)) ).run(as_dict=True) serial_nos = [sn.name for sn in serial_nos] location.serial_no = serial_nos + location.qty = len(serial_nos) return locations -def get_available_item_locations_for_other_item(item_code, from_warehouses, required_qty, company): +def get_available_item_locations_for_other_item( + item_code, from_warehouses, required_qty, company, total_picked_qty=0 +): bin = frappe.qb.DocType("Bin") query = ( frappe.qb.from_(bin) .select(bin.warehouse, bin.actual_qty.as_("qty")) .where((bin.item_code == item_code) & (bin.actual_qty > 0)) .orderby(bin.creation) - .limit(cint(required_qty)) + .limit(cint(required_qty + total_picked_qty)) ) if from_warehouses: From e8d617ada216dc699e6c68bc75106f3602056e0b Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Tue, 24 Jan 2023 11:10:29 +0530 Subject: [PATCH 116/355] chore: add `status` field in `Pick List` (cherry picked from commit be41052dc80e731bc058bcc4ca3ea0632658b3ea) # Conflicts: # erpnext/patches.txt --- erpnext/patches.txt | 4 ++ erpnext/patches/v14_0/set_pick_list_status.py | 40 +++++++++++++++++++ .../doctype/delivery_note/delivery_note.py | 6 +++ .../stock/doctype/pick_list/pick_list.json | 22 ++++++++-- erpnext/stock/doctype/pick_list/pick_list.py | 23 +++++++++++ .../stock/doctype/pick_list/pick_list_list.js | 14 +++++++ .../stock/doctype/stock_entry/stock_entry.py | 6 +++ 7 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 erpnext/patches/v14_0/set_pick_list_status.py create mode 100644 erpnext/stock/doctype/pick_list/pick_list_list.js diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 9dcb9c1bcae5..d9734c90fe4f 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -325,4 +325,8 @@ erpnext.patches.v14_0.setup_clear_repost_logs erpnext.patches.v14_0.create_accounting_dimensions_for_payment_request erpnext.patches.v14_0.update_entry_type_for_journal_entry erpnext.patches.v14_0.change_autoname_for_tax_withheld_vouchers +<<<<<<< HEAD erpnext.patches.v14_0.update_asset_value_for_manual_depr_entries +======= +erpnext.patches.v14_0.set_pick_list_status +>>>>>>> be41052dc8 (chore: add `status` field in `Pick List`) diff --git a/erpnext/patches/v14_0/set_pick_list_status.py b/erpnext/patches/v14_0/set_pick_list_status.py new file mode 100644 index 000000000000..eea5745c23a9 --- /dev/null +++ b/erpnext/patches/v14_0/set_pick_list_status.py @@ -0,0 +1,40 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors +# License: MIT. See LICENSE + + +import frappe +from pypika.terms import ExistsCriterion + + +def execute(): + pl = frappe.qb.DocType("Pick List") + se = frappe.qb.DocType("Stock Entry") + dn = frappe.qb.DocType("Delivery Note") + + ( + frappe.qb.update(pl).set( + pl.status, + ( + frappe.qb.terms.Case() + .when(pl.docstatus == 0, "Draft") + .when(pl.docstatus == 2, "Cancelled") + .else_("Completed") + ), + ) + ).run() + + ( + frappe.qb.update(pl) + .set(pl.status, "Open") + .where( + ( + ExistsCriterion( + frappe.qb.from_(se).select(se.name).where((se.docstatus == 1) & (se.pick_list == pl.name)) + ) + | ExistsCriterion( + frappe.qb.from_(dn).select(dn.name).where((dn.docstatus == 1) & (dn.pick_list == pl.name)) + ) + ).negate() + & (pl.docstatus == 1) + ) + ).run() diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py index a1df764ea9d2..9f9f5cbe2a4c 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/delivery_note.py @@ -228,6 +228,7 @@ def update_current_stock(self): def on_submit(self): self.validate_packed_qty() + self.update_pick_list_status() # Check for Approving Authority frappe.get_doc("Authorization Control").validate_approving_authority( @@ -313,6 +314,11 @@ def validate_packed_qty(self): if has_error: raise frappe.ValidationError + def update_pick_list_status(self): + from erpnext.stock.doctype.pick_list.pick_list import update_pick_list_status + + update_pick_list_status(self.pick_list) + def check_next_docstatus(self): submit_rv = frappe.db.sql( """select t1.name diff --git a/erpnext/stock/doctype/pick_list/pick_list.json b/erpnext/stock/doctype/pick_list/pick_list.json index e1c3f0f50618..7259dc00a81b 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.json +++ b/erpnext/stock/doctype/pick_list/pick_list.json @@ -26,7 +26,8 @@ "locations", "amended_from", "print_settings_section", - "group_same_items" + "group_same_items", + "status" ], "fields": [ { @@ -168,11 +169,26 @@ "fieldtype": "Data", "label": "Customer Name", "read_only": 1 + }, + { + "default": "Draft", + "fieldname": "status", + "fieldtype": "Select", + "hidden": 1, + "in_standard_filter": 1, + "label": "Status", + "no_copy": 1, + "options": "Draft\nOpen\nCompleted\nCancelled", + "print_hide": 1, + "read_only": 1, + "report_hide": 1, + "reqd": 1, + "search_index": 1 } ], "is_submittable": 1, "links": [], - "modified": "2022-07-19 11:03:04.442174", + "modified": "2023-01-24 10:33:43.244476", "modified_by": "Administrator", "module": "Stock", "name": "Pick List", @@ -244,4 +260,4 @@ "sort_order": "DESC", "states": [], "track_changes": 1 -} +} \ No newline at end of file diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index 7b75bb0ffd3a..07961d035361 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -77,15 +77,32 @@ def validate_picked_items(self): ) def on_submit(self): + self.update_status() self.update_bundle_picked_qty() self.update_reference_qty() self.update_sales_order_picking_status() def on_cancel(self): + self.update_status() self.update_bundle_picked_qty() self.update_reference_qty() self.update_sales_order_picking_status() + def update_status(self, status=None, update_modified=True): + if not status: + if self.docstatus == 0: + status = "Draft" + elif self.docstatus == 1: + if self.status == "Draft": + status = "Open" + elif target_document_exists(self.name, self.purpose): + status = "Completed" + elif self.docstatus == 2: + status = "Cancelled" + + if status: + frappe.db.set_value("Pick List", self.name, "status", status, update_modified=update_modified) + def update_reference_qty(self): packed_items = [] so_items = [] @@ -394,6 +411,12 @@ def _compute_picked_qty_for_bundle(self, bundle_row, bundle_items) -> int: return int(flt(min(possible_bundles), precision or 6)) +def update_pick_list_status(pick_list): + if pick_list: + doc = frappe.get_doc("Pick List", pick_list) + doc.run_method("update_status") + + def get_picked_items_qty(items) -> List[Dict]: pi_item = frappe.qb.DocType("Pick List Item") return ( diff --git a/erpnext/stock/doctype/pick_list/pick_list_list.js b/erpnext/stock/doctype/pick_list/pick_list_list.js new file mode 100644 index 000000000000..ad88b0a682f5 --- /dev/null +++ b/erpnext/stock/doctype/pick_list/pick_list_list.js @@ -0,0 +1,14 @@ +// Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.listview_settings['Pick List'] = { + get_indicator: function (doc) { + const status_colors = { + "Draft": "grey", + "Open": "orange", + "Completed": "green", + "Cancelled": "red", + }; + return [__(doc.status), status_colors[doc.status], "status,=," + doc.status]; + }, +}; \ No newline at end of file diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index d90a74f7b4ad..9a2473170458 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -161,6 +161,7 @@ def on_submit(self): self.validate_subcontract_order() self.update_subcontract_order_supplied_items() self.update_subcontracting_order_status() + self.update_pick_list_status() self.make_gl_entries() @@ -2279,6 +2280,11 @@ def update_subcontracting_order_status(self): update_subcontracting_order_status(self.subcontracting_order) + def update_pick_list_status(self): + from erpnext.stock.doctype.pick_list.pick_list import update_pick_list_status + + update_pick_list_status(self.pick_list) + def set_missing_values(self): "Updates rate and availability of all the items of mapped doc." self.set_transfer_qty() From 7afbd9201d328fa13170453bd120c6c04a7cec04 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Tue, 24 Jan 2023 14:45:19 +0530 Subject: [PATCH 117/355] fix: `get_picked_items_details` (cherry picked from commit 7b3d496ce0d8e9fba103e2df281709e7aa3c750f) --- erpnext/stock/doctype/pick_list/pick_list.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index 07961d035361..38878484495c 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -11,7 +11,8 @@ from frappe.model.document import Document from frappe.model.mapper import map_child_doc from frappe.query_builder import Case -from frappe.query_builder.functions import Coalesce, IfNull, Locate, Sum +from frappe.query_builder.custom import GROUP_CONCAT +from frappe.query_builder.functions import Coalesce, IfNull, Locate, Replace, Sum from frappe.utils import cint, floor, flt, today from frappe.utils.nestedset import get_descendants_of @@ -334,20 +335,24 @@ def update_bundle_picked_qty(self): def get_picked_items_details(self, items): picked_items = frappe._dict() + pi = frappe.qb.DocType("Pick List") pi_item = frappe.qb.DocType("Pick List Item") query = ( - frappe.qb.from_(pi_item) + frappe.qb.from_(pi) + .inner_join(pi_item) + .on(pi.name == pi_item.parent) .select( pi_item.item_code, pi_item.warehouse, pi_item.batch_no, - pi_item.serial_no, Sum(pi_item.picked_qty).as_("picked_qty"), + Replace(GROUP_CONCAT(pi_item.serial_no), ",", "\n").as_("serial_no"), ) .where( (pi_item.item_code.isin([x.item_code for x in items])) & (pi_item.docstatus != 2) & (pi_item.picked_qty > 0) + & (pi.status != "Completed") ) .groupby( pi_item.item_code, From aa3dd33f5626b8cbae54ba4f9ca97e1acefc9779 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 26 Jan 2023 18:10:05 +0530 Subject: [PATCH 118/355] fix: `pymysql.err.ProgrammingError` (cherry picked from commit 5138ef0160a72e19dfa3b11b4d662c68e79badb1) --- erpnext/stock/doctype/pick_list/pick_list.py | 75 ++++++++++---------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index 38878484495c..79c6891f5d2b 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -335,47 +335,48 @@ def update_bundle_picked_qty(self): def get_picked_items_details(self, items): picked_items = frappe._dict() - pi = frappe.qb.DocType("Pick List") - pi_item = frappe.qb.DocType("Pick List Item") - query = ( - frappe.qb.from_(pi) - .inner_join(pi_item) - .on(pi.name == pi_item.parent) - .select( - pi_item.item_code, - pi_item.warehouse, - pi_item.batch_no, - Sum(pi_item.picked_qty).as_("picked_qty"), - Replace(GROUP_CONCAT(pi_item.serial_no), ",", "\n").as_("serial_no"), - ) - .where( - (pi_item.item_code.isin([x.item_code for x in items])) - & (pi_item.docstatus != 2) - & (pi_item.picked_qty > 0) - & (pi.status != "Completed") - ) - .groupby( - pi_item.item_code, - pi_item.warehouse, - pi_item.batch_no, + if items: + pi = frappe.qb.DocType("Pick List") + pi_item = frappe.qb.DocType("Pick List Item") + query = ( + frappe.qb.from_(pi) + .inner_join(pi_item) + .on(pi.name == pi_item.parent) + .select( + pi_item.item_code, + pi_item.warehouse, + pi_item.batch_no, + Sum(pi_item.picked_qty).as_("picked_qty"), + Replace(GROUP_CONCAT(pi_item.serial_no), ",", "\n").as_("serial_no"), + ) + .where( + (pi_item.item_code.isin([x.item_code for x in items])) + & (pi_item.docstatus != 2) + & (pi_item.picked_qty > 0) + & (pi.status != "Completed") + ) + .groupby( + pi_item.item_code, + pi_item.warehouse, + pi_item.batch_no, + ) ) - ) - if self.name: - query = query.where(pi_item.parent != self.name) + if self.name: + query = query.where(pi_item.parent != self.name) - items_data = query.run(as_dict=True) + items_data = query.run(as_dict=True) - for item_data in items_data: - key = (item_data.warehouse, item_data.batch_no) if item_data.batch_no else item_data.warehouse - serial_no = [x for x in item_data.serial_no.split("\n") if x] if item_data.serial_no else None - data = {"picked_qty": item_data.picked_qty} - if serial_no: - data["serial_no"] = serial_no - if item_data.item_code not in picked_items: - picked_items[item_data.item_code] = {key: data} - else: - picked_items[item_data.item_code][key] = data + for item_data in items_data: + key = (item_data.warehouse, item_data.batch_no) if item_data.batch_no else item_data.warehouse + serial_no = [x for x in item_data.serial_no.split("\n") if x] if item_data.serial_no else None + data = {"picked_qty": item_data.picked_qty} + if serial_no: + data["serial_no"] = serial_no + if item_data.item_code not in picked_items: + picked_items[item_data.item_code] = {key: data} + else: + picked_items[item_data.item_code][key] = data return picked_items From 7124c0ca30f26c715766b6d1363a4f041e082fac Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Fri, 27 Jan 2023 10:09:20 +0530 Subject: [PATCH 119/355] fix(test): `test_pick_list_for_items_with_multiple_UOM()` (cherry picked from commit 207eeefc857a6e4c136c7971d9a637452adcc395) --- erpnext/stock/doctype/pick_list/test_pick_list.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/stock/doctype/pick_list/test_pick_list.py b/erpnext/stock/doctype/pick_list/test_pick_list.py index 43acdf083601..c93b8ce87da5 100644 --- a/erpnext/stock/doctype/pick_list/test_pick_list.py +++ b/erpnext/stock/doctype/pick_list/test_pick_list.py @@ -414,6 +414,7 @@ def test_pick_list_for_items_with_multiple_UOM(self): pick_list.submit() delivery_note = create_delivery_note(pick_list.name) + pick_list.load_from_db() self.assertEqual(pick_list.locations[0].qty, delivery_note.items[0].qty) self.assertEqual(pick_list.locations[1].qty, delivery_note.items[1].qty) From cdb6abf569b498897dfa56bce9dbe94d2933e167 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sat, 28 Jan 2023 13:22:10 +0530 Subject: [PATCH 120/355] test: add test cases (cherry picked from commit bb7fe795fe0117cf042f22807f4827f6b027772b) --- .../stock/doctype/pick_list/test_pick_list.py | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/erpnext/stock/doctype/pick_list/test_pick_list.py b/erpnext/stock/doctype/pick_list/test_pick_list.py index c93b8ce87da5..9f8d2d71106b 100644 --- a/erpnext/stock/doctype/pick_list/test_pick_list.py +++ b/erpnext/stock/doctype/pick_list/test_pick_list.py @@ -664,3 +664,138 @@ def test_picklist_with_partial_bundles(self): self.assertEqual(dn.items[0].rate, 42) so.reload() self.assertEqual(so.per_delivered, 100) + + def test_pick_list_status(self): + warehouse = "_Test Warehouse - _TC" + item = make_item(properties={"maintain_stock": 1}).name + make_stock_entry(item=item, to_warehouse=warehouse, qty=10) + + so = make_sales_order(item_code=item, qty=10, rate=100) + + pl = create_pick_list(so.name) + pl.save() + pl.reload() + self.assertEqual(pl.status, "Draft") + + pl.submit() + pl.reload() + self.assertEqual(pl.status, "Open") + + dn = create_delivery_note(pl.name) + dn.save() + pl.reload() + self.assertEqual(pl.status, "Open") + + dn.submit() + pl.reload() + self.assertEqual(pl.status, "Completed") + + dn.cancel() + pl.reload() + self.assertEqual(pl.status, "Completed") + + pl.cancel() + pl.reload() + self.assertEqual(pl.status, "Cancelled") + + def test_consider_existing_pick_list(self): + # Step - 1: Setup - Create Items and Stock Entries + items_properties = [ + { + "valuation_rate": 100, + }, + { + "valuation_rate": 200, + "has_batch_no": 1, + "create_new_batch": 1, + }, + { + "valuation_rate": 300, + "has_serial_no": 1, + "serial_no_series": "SNO.###", + }, + { + "valuation_rate": 400, + "has_batch_no": 1, + "create_new_batch": 1, + "has_serial_no": 1, + "serial_no_series": "SNO.###", + }, + ] + + items = [] + for properties in items_properties: + properties.update({"maintain_stock": 1}) + item_code = make_item(properties=properties).name + properties.update({"item_code": item_code}) + items.append(properties) + + warehouses = ["Stores - _TC", "Finished Goods - _TC"] + for item in items: + for warehouse in warehouses: + se = make_stock_entry( + item=item.get("item_code"), + to_warehouse=warehouse, + qty=5, + ) + + # Step - 2: Create Sales Order [1] + item_list = [ + { + "item_code": item.get("item_code"), + "qty": 6, + "warehouse": "All Warehouses - _TC", + } + for item in items + ] + so1 = make_sales_order(item_list=item_list) + + # Step - 3: Create and Submit Pick List [1] for Sales Order [1] + pl1 = create_pick_list(so1.name) + pl1.submit() + + # Step - 4: Create Sales Order [2] with same Item(s) as Sales Order [1] + item_list = [ + { + "item_code": item.get("item_code"), + "qty": 4, + "warehouse": "All Warehouses - _TC", + } + for item in items + ] + so2 = make_sales_order(item_list=item_list) + + # Step - 5: Create Pick List [2] for Sales Order [2] + pl2 = create_pick_list(so2.name) + pl2.save() + + # Step - 6: Assert + items_data = {} + for location in pl1.locations: + key = (location.warehouse, location.batch_no) if location.batch_no else location.warehouse + serial_no = [x for x in location.serial_no.split("\n") if x] if location.serial_no else None + data = {"picked_qty": location.picked_qty} + if serial_no: + data["serial_no"] = serial_no + if location.item_code not in items_data: + items_data[location.item_code] = {key: data} + else: + items_data[location.item_code][key] = data + + for location in pl2.locations: + key = (location.warehouse, location.batch_no) if location.batch_no else location.warehouse + item_data = items_data.get(location.item_code, {}).get(key, {}) + picked_qty = item_data.get("picked_qty", 0) + picked_serial_no = items_data.get("serial_no", []) + bin_actual_qty = frappe.db.get_value( + "Bin", {"item_code": location.item_code, "warehouse": location.warehouse}, "actual_qty" + ) + + # Available Qty to pick should be equal to [Actual Qty - Picked Qty] + self.assertEqual(location.stock_qty, bin_actual_qty - picked_qty) + + # Serial No should not be in the Picked Serial No list + if location.serial_no: + a = set(picked_serial_no) + b = set([x for x in location.serial_no.split("\n") if x]) + self.assertSetEqual(b, b.difference(a)) From 4f56c72bedafb8e802abfef4a7aaf34db24f9af7 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sat, 28 Jan 2023 17:45:08 +0530 Subject: [PATCH 121/355] refactor: `test_consider_existing_pick_list()` (cherry picked from commit 0b76a26c8a660f21f38b2511586a6ea5d816fb0e) --- .../stock/doctype/pick_list/test_pick_list.py | 101 ++++++++++-------- 1 file changed, 55 insertions(+), 46 deletions(-) diff --git a/erpnext/stock/doctype/pick_list/test_pick_list.py b/erpnext/stock/doctype/pick_list/test_pick_list.py index 9f8d2d71106b..1254fe3927fa 100644 --- a/erpnext/stock/doctype/pick_list/test_pick_list.py +++ b/erpnext/stock/doctype/pick_list/test_pick_list.py @@ -699,6 +699,54 @@ def test_pick_list_status(self): self.assertEqual(pl.status, "Cancelled") def test_consider_existing_pick_list(self): + def create_items(items_properties): + items = [] + + for properties in items_properties: + properties.update({"maintain_stock": 1}) + item_code = make_item(properties=properties).name + properties.update({"item_code": item_code}) + items.append(properties) + + return items + + def create_stock_entries(items): + warehouses = ["Stores - _TC", "Finished Goods - _TC"] + + for item in items: + for warehouse in warehouses: + se = make_stock_entry( + item=item.get("item_code"), + to_warehouse=warehouse, + qty=5, + ) + + def get_item_list(items, qty, warehouse="All Warehouses - _TC"): + return [ + { + "item_code": item.get("item_code"), + "qty": qty, + "warehouse": warehouse, + } + for item in items + ] + + def get_picked_items_details(pick_list_doc): + items_data = {} + + for location in pick_list_doc.locations: + key = (location.warehouse, location.batch_no) if location.batch_no else location.warehouse + serial_no = [x for x in location.serial_no.split("\n") if x] if location.serial_no else None + data = {"picked_qty": location.picked_qty} + if serial_no: + data["serial_no"] = serial_no + if location.item_code not in items_data: + items_data[location.item_code] = {key: data} + else: + items_data[location.item_code][key] = data + + return items_data + # Step - 1: Setup - Create Items and Stock Entries items_properties = [ { @@ -723,70 +771,31 @@ def test_consider_existing_pick_list(self): }, ] - items = [] - for properties in items_properties: - properties.update({"maintain_stock": 1}) - item_code = make_item(properties=properties).name - properties.update({"item_code": item_code}) - items.append(properties) - - warehouses = ["Stores - _TC", "Finished Goods - _TC"] - for item in items: - for warehouse in warehouses: - se = make_stock_entry( - item=item.get("item_code"), - to_warehouse=warehouse, - qty=5, - ) + items = create_items(items_properties) + create_stock_entries(items) # Step - 2: Create Sales Order [1] - item_list = [ - { - "item_code": item.get("item_code"), - "qty": 6, - "warehouse": "All Warehouses - _TC", - } - for item in items - ] - so1 = make_sales_order(item_list=item_list) + so1 = make_sales_order(item_list=get_item_list(items, qty=6)) # Step - 3: Create and Submit Pick List [1] for Sales Order [1] pl1 = create_pick_list(so1.name) pl1.submit() # Step - 4: Create Sales Order [2] with same Item(s) as Sales Order [1] - item_list = [ - { - "item_code": item.get("item_code"), - "qty": 4, - "warehouse": "All Warehouses - _TC", - } - for item in items - ] - so2 = make_sales_order(item_list=item_list) + so2 = make_sales_order(item_list=get_item_list(items, qty=4)) # Step - 5: Create Pick List [2] for Sales Order [2] pl2 = create_pick_list(so2.name) pl2.save() # Step - 6: Assert - items_data = {} - for location in pl1.locations: - key = (location.warehouse, location.batch_no) if location.batch_no else location.warehouse - serial_no = [x for x in location.serial_no.split("\n") if x] if location.serial_no else None - data = {"picked_qty": location.picked_qty} - if serial_no: - data["serial_no"] = serial_no - if location.item_code not in items_data: - items_data[location.item_code] = {key: data} - else: - items_data[location.item_code][key] = data + picked_items_details = get_picked_items_details(pl1) for location in pl2.locations: key = (location.warehouse, location.batch_no) if location.batch_no else location.warehouse - item_data = items_data.get(location.item_code, {}).get(key, {}) + item_data = picked_items_details.get(location.item_code, {}).get(key, {}) picked_qty = item_data.get("picked_qty", 0) - picked_serial_no = items_data.get("serial_no", []) + picked_serial_no = picked_items_details.get("serial_no", []) bin_actual_qty = frappe.db.get_value( "Bin", {"item_code": location.item_code, "warehouse": location.warehouse}, "actual_qty" ) From df72e4a2217337d3815808a7bf7fba75eab643ea Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Tue, 31 Jan 2023 14:33:21 +0530 Subject: [PATCH 122/355] fix: consider `stock_qty` if `picked_qty` is zero (cherry picked from commit 6ffdeb1af8dc9debf63f15d8f1844a7fb1a35d40) --- erpnext/stock/doctype/pick_list/pick_list.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index 79c6891f5d2b..bf3b5ddc54a4 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -346,14 +346,16 @@ def get_picked_items_details(self, items): pi_item.item_code, pi_item.warehouse, pi_item.batch_no, - Sum(pi_item.picked_qty).as_("picked_qty"), + Sum(Case().when(pi_item.picked_qty > 0, pi_item.picked_qty).else_(pi_item.stock_qty)).as_( + "picked_qty" + ), Replace(GROUP_CONCAT(pi_item.serial_no), ",", "\n").as_("serial_no"), ) .where( (pi_item.item_code.isin([x.item_code for x in items])) - & (pi_item.docstatus != 2) - & (pi_item.picked_qty > 0) + & ((pi_item.picked_qty > 0) | (pi_item.stock_qty > 0)) & (pi.status != "Completed") + & (pi_item.docstatus != 2) ) .groupby( pi_item.item_code, From 3aca84c43f4e843802f94ee1e44e57090385c50b Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 31 Jan 2023 14:19:14 +0530 Subject: [PATCH 123/355] feat: mandatory and mandatory depends on in inventory dimension (cherry picked from commit 423f2b5627ce2fc20424665aec0a3d4321d013e5) --- .../inventory_dimension.js | 2 +- .../inventory_dimension.json | 22 ++++++++++++++++++- .../inventory_dimension.py | 4 ++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.js b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.js index ba1023ac691f..0310682a2c17 100644 --- a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.js +++ b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.js @@ -37,7 +37,7 @@ frappe.ui.form.on('Inventory Dimension', { if (frm.doc.__onload && frm.doc.__onload.has_stock_ledger && frm.doc.__onload.has_stock_ledger.length) { let allow_to_edit_fields = ['disabled', 'fetch_from_parent', - 'type_of_transaction', 'condition']; + 'type_of_transaction', 'condition', 'mandatory_depends_on']; frm.fields.forEach((field) => { if (!in_list(allow_to_edit_fields, field.df.fieldname)) { diff --git a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.json b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.json index 4397e11f540c..eb6102a436e3 100644 --- a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.json +++ b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.json @@ -24,6 +24,9 @@ "istable", "applicable_condition_example_section", "condition", + "conditional_mandatory_section", + "reqd", + "mandatory_depends_on", "conditional_rule_examples_section", "html_19" ], @@ -153,11 +156,28 @@ "fieldname": "conditional_rule_examples_section", "fieldtype": "Section Break", "label": "Conditional Rule Examples" + }, + { + "description": "To apply condition on parent field use parent.field_name and to apply condition on child table use doc.field_name. Here field_name could be based on the actual column name of the respective field.", + "fieldname": "mandatory_depends_on", + "fieldtype": "Small Text", + "label": "Mandatory Depends On" + }, + { + "fieldname": "conditional_mandatory_section", + "fieldtype": "Section Break", + "label": "Mandatory Section" + }, + { + "default": "0", + "fieldname": "reqd", + "fieldtype": "Check", + "label": "Mandatory" } ], "index_web_pages_for_search": 1, "links": [], - "modified": "2022-11-15 15:50:16.767105", + "modified": "2023-01-31 13:44:38.507698", "modified_by": "Administrator", "module": "Stock", "name": "Inventory Dimension", diff --git a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.py b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.py index 009548abf26d..db2b5d0a6b60 100644 --- a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.py +++ b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.py @@ -126,6 +126,8 @@ def add_custom_fields(self): insert_after="inventory_dimension", options=self.reference_document, label=self.dimension_name, + reqd=self.reqd, + mandatory_depends_on=self.mandatory_depends_on, ), ] @@ -142,6 +144,8 @@ def add_custom_fields(self): "Custom Field", {"dt": "Stock Ledger Entry", "fieldname": self.target_fieldname} ) and not field_exists("Stock Ledger Entry", self.target_fieldname): dimension_field = dimension_fields[1] + dimension_field["mandatory_depends_on"] = "" + dimension_field["reqd"] = 0 dimension_field["fieldname"] = self.target_fieldname custom_fields["Stock Ledger Entry"] = dimension_field From f47b05f58c02020ae2c08f6730dbf8c8d2c81685 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 31 Jan 2023 14:36:26 +0530 Subject: [PATCH 124/355] test: added test case (cherry picked from commit 22d0e1373b0b8b4e457c936eb2383723f931a9cb) --- .../test_inventory_dimension.py | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/erpnext/stock/doctype/inventory_dimension/test_inventory_dimension.py b/erpnext/stock/doctype/inventory_dimension/test_inventory_dimension.py index edff3fd556c1..28b1ed96f0d4 100644 --- a/erpnext/stock/doctype/inventory_dimension/test_inventory_dimension.py +++ b/erpnext/stock/doctype/inventory_dimension/test_inventory_dimension.py @@ -85,6 +85,9 @@ def test_inventory_dimension(self): condition="parent.purpose == 'Material Issue'", ) + inv_dim1.reqd = 0 + inv_dim1.save() + create_inventory_dimension( reference_document="Shelf", type_of_transaction="Inward", @@ -205,6 +208,48 @@ def test_check_standard_dimensions(self): ) ) + def test_check_mandatory_dimensions(self): + doc = create_inventory_dimension( + reference_document="Pallet", + type_of_transaction="Outward", + dimension_name="Pallet", + apply_to_all_doctypes=0, + document_type="Stock Entry Detail", + ) + + doc.reqd = 1 + doc.save() + + self.assertTrue( + frappe.db.get_value( + "Custom Field", {"fieldname": "pallet", "dt": "Stock Entry Detail", "reqd": 1}, "name" + ) + ) + + doc.load_from_db + doc.reqd = 0 + doc.save() + + def test_check_mandatory_depends_on_dimensions(self): + doc = create_inventory_dimension( + reference_document="Pallet", + type_of_transaction="Outward", + dimension_name="Pallet", + apply_to_all_doctypes=0, + document_type="Stock Entry Detail", + ) + + doc.mandatory_depends_on = "t_warehouse" + doc.save() + + self.assertTrue( + frappe.db.get_value( + "Custom Field", + {"fieldname": "pallet", "dt": "Stock Entry Detail", "mandatory_depends_on": "t_warehouse"}, + "name", + ) + ) + def prepare_test_data(): if not frappe.db.exists("DocType", "Shelf"): @@ -251,6 +296,22 @@ def prepare_test_data(): create_warehouse("Rack Warehouse") + if not frappe.db.exists("DocType", "Pallet"): + frappe.get_doc( + { + "doctype": "DocType", + "name": "Pallet", + "module": "Stock", + "custom": 1, + "naming_rule": "By fieldname", + "autoname": "field:pallet_name", + "fields": [{"label": "Pallet Name", "fieldname": "pallet_name", "fieldtype": "Data"}], + "permissions": [ + {"role": "System Manager", "permlevel": 0, "read": 1, "write": 1, "create": 1, "delete": 1} + ], + } + ).insert(ignore_permissions=True) + def create_inventory_dimension(**args): args = frappe._dict(args) From 075c547184daa2754e2a64a9f45a68cec3f3c39e Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Tue, 31 Jan 2023 16:14:45 +0530 Subject: [PATCH 125/355] chore: conflicts --- erpnext/patches.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/erpnext/patches.txt b/erpnext/patches.txt index d9734c90fe4f..54957cd22283 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -325,8 +325,5 @@ erpnext.patches.v14_0.setup_clear_repost_logs erpnext.patches.v14_0.create_accounting_dimensions_for_payment_request erpnext.patches.v14_0.update_entry_type_for_journal_entry erpnext.patches.v14_0.change_autoname_for_tax_withheld_vouchers -<<<<<<< HEAD erpnext.patches.v14_0.update_asset_value_for_manual_depr_entries -======= -erpnext.patches.v14_0.set_pick_list_status ->>>>>>> be41052dc8 (chore: add `status` field in `Pick List`) +erpnext.patches.v14_0.set_pick_list_status \ No newline at end of file From 68a1615eae49a0d237bb358d650b3c8e80806da2 Mon Sep 17 00:00:00 2001 From: barredterra <14891507+barredterra@users.noreply.github.com> Date: Tue, 31 Jan 2023 23:23:54 +0100 Subject: [PATCH 126/355] feat: add incoterm named place to RFQ (cherry picked from commit 7156184933fb80b1c7f9a68914126e31ee352a55) --- .../request_for_quotation/request_for_quotation.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.json b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.json index 019d45b5683e..bd65b0c805e8 100644 --- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.json +++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.json @@ -29,6 +29,7 @@ "message_for_supplier", "terms_section_break", "incoterm", + "named_place", "tc_name", "terms", "printing_settings", @@ -278,13 +279,19 @@ "fieldtype": "Link", "label": "Incoterm", "options": "Incoterm" + }, + { + "depends_on": "incoterm", + "fieldname": "named_place", + "fieldtype": "Data", + "label": "Named Place" } ], "icon": "fa fa-shopping-cart", "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], - "modified": "2022-11-17 17:26:33.770993", + "modified": "2023-01-31 23:22:06.684694", "modified_by": "Administrator", "module": "Buying", "name": "Request for Quotation", From 01ff6a1f1995e619de90ba861c7b6dd0bf79af94 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 1 Feb 2023 15:38:12 +0530 Subject: [PATCH 127/355] fix: incorrect actual qty in Bin (cherry picked from commit f8c852c54ccf7a33d26e15378b76557ceffd77e5) --- erpnext/stock/doctype/bin/bin.py | 7 ++++++- erpnext/stock/stock_ledger.py | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py index 9f409d4b96a0..72654e6f8168 100644 --- a/erpnext/stock/doctype/bin/bin.py +++ b/erpnext/stock/doctype/bin/bin.py @@ -159,13 +159,18 @@ def update_qty(bin_name, args): last_sle_qty = ( frappe.qb.from_(sle) .select(sle.qty_after_transaction) - .where((sle.item_code == args.get("item_code")) & (sle.warehouse == args.get("warehouse"))) + .where( + (sle.item_code == args.get("item_code")) + & (sle.warehouse == args.get("warehouse")) + & (sle.is_cancelled == 0) + ) .orderby(CombineDatetime(sle.posting_date, sle.posting_time), order=Order.desc) .orderby(sle.creation, order=Order.desc) .limit(1) .run() ) + actual_qty = 0.0 if last_sle_qty: actual_qty = last_sle_qty[0][0] diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index 5d75bfd05a3f..d8b12ed5b92a 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -1179,7 +1179,7 @@ def get_stock_ledger_entries( def get_sle_by_voucher_detail_no(voucher_detail_no, excluded_sle=None): return frappe.db.get_value( "Stock Ledger Entry", - {"voucher_detail_no": voucher_detail_no, "name": ["!=", excluded_sle]}, + {"voucher_detail_no": voucher_detail_no, "name": ["!=", excluded_sle], "is_cancelled": 0}, [ "item_code", "warehouse", From 4c238f1871cb5ae5db0669f6fb7daa2e8a684db9 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 1 Feb 2023 15:38:12 +0530 Subject: [PATCH 128/355] fix: incorrect actual qty in Bin (cherry picked from commit f8c852c54ccf7a33d26e15378b76557ceffd77e5) (cherry picked from commit 01ff6a1f1995e619de90ba861c7b6dd0bf79af94) --- erpnext/stock/doctype/bin/bin.py | 7 ++++++- erpnext/stock/stock_ledger.py | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py index 9f409d4b96a0..72654e6f8168 100644 --- a/erpnext/stock/doctype/bin/bin.py +++ b/erpnext/stock/doctype/bin/bin.py @@ -159,13 +159,18 @@ def update_qty(bin_name, args): last_sle_qty = ( frappe.qb.from_(sle) .select(sle.qty_after_transaction) - .where((sle.item_code == args.get("item_code")) & (sle.warehouse == args.get("warehouse"))) + .where( + (sle.item_code == args.get("item_code")) + & (sle.warehouse == args.get("warehouse")) + & (sle.is_cancelled == 0) + ) .orderby(CombineDatetime(sle.posting_date, sle.posting_time), order=Order.desc) .orderby(sle.creation, order=Order.desc) .limit(1) .run() ) + actual_qty = 0.0 if last_sle_qty: actual_qty = last_sle_qty[0][0] diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index 5d75bfd05a3f..d8b12ed5b92a 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -1179,7 +1179,7 @@ def get_stock_ledger_entries( def get_sle_by_voucher_detail_no(voucher_detail_no, excluded_sle=None): return frappe.db.get_value( "Stock Ledger Entry", - {"voucher_detail_no": voucher_detail_no, "name": ["!=", excluded_sle]}, + {"voucher_detail_no": voucher_detail_no, "name": ["!=", excluded_sle], "is_cancelled": 0}, [ "item_code", "warehouse", From 171df324074f22b76c1db242580aa6a7a3257580 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 1 Feb 2023 17:46:44 +0000 Subject: [PATCH 129/355] chore(release): Bumped to Version 14.15.1 ## [14.15.1](https://github.com/frappe/erpnext/compare/v14.15.0...v14.15.1) (2023-02-01) ### Bug Fixes * incorrect actual qty in Bin ([4c238f1](https://github.com/frappe/erpnext/commit/4c238f1871cb5ae5db0669f6fb7daa2e8a684db9)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index f59e1633b71f..2fca8ec32c73 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.15.0" +__version__ = "14.15.1" def get_default_company(user=None): From c191a3f7c6ec48269f9b0b6c774297ced9db129a Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Sat, 21 Jan 2023 13:28:22 +0530 Subject: [PATCH 130/355] perf: reduce memory usage while migrating remarks Page through records using primary key (cherry picked from commit 9bb64107c568bf64a121bf31596d69e9d1910f09) --- ...grate_remarks_from_gl_to_payment_ledger.py | 151 ++++++++++-------- 1 file changed, 84 insertions(+), 67 deletions(-) diff --git a/erpnext/patches/v14_0/migrate_remarks_from_gl_to_payment_ledger.py b/erpnext/patches/v14_0/migrate_remarks_from_gl_to_payment_ledger.py index fd2a2a39cc68..9d216c4028c5 100644 --- a/erpnext/patches/v14_0/migrate_remarks_from_gl_to_payment_ledger.py +++ b/erpnext/patches/v14_0/migrate_remarks_from_gl_to_payment_ledger.py @@ -1,81 +1,98 @@ import frappe from frappe import qb -from frappe.utils import create_batch - - -def remove_duplicate_entries(pl_entries): - unique_vouchers = set() - for x in pl_entries: - unique_vouchers.add( - (x.company, x.account, x.party_type, x.party, x.voucher_type, x.voucher_no, x.gle_remarks) - ) - - entries = [] - for x in unique_vouchers: - entries.append( - frappe._dict( - company=x[0], - account=x[1], - party_type=x[2], - party=x[3], - voucher_type=x[4], - voucher_no=x[5], - gle_remarks=x[6], - ) - ) - return entries +from frappe.query_builder import CustomFunction +from frappe.query_builder.functions import Count, IfNull +from frappe.utils import flt def execute(): + """ + Migrate 'remarks' field from 'tabGL Entry' to 'tabPayment Ledger Entry' + """ + if frappe.reload_doc("accounts", "doctype", "payment_ledger_entry"): gle = qb.DocType("GL Entry") ple = qb.DocType("Payment Ledger Entry") - # get ple and their remarks from GL Entry - pl_entries = ( - qb.from_(ple) - .left_join(gle) - .on( - (ple.account == gle.account) - & (ple.party_type == gle.party_type) - & (ple.party == gle.party) - & (ple.voucher_type == gle.voucher_type) - & (ple.voucher_no == gle.voucher_no) - & (ple.company == gle.company) - ) - .select( - ple.company, - ple.account, - ple.party_type, - ple.party, - ple.voucher_type, - ple.voucher_no, - gle.remarks.as_("gle_remarks"), - ) - .where((ple.delinked == 0) & (gle.is_cancelled == 0)) - .run(as_dict=True) - ) - - pl_entries = remove_duplicate_entries(pl_entries) - - if pl_entries: - # split into multiple batches, update and commit for each batch + # Get empty PLE records + un_processed = ( + qb.from_(ple).select(Count(ple.name)).where((ple.remarks.isnull()) & (ple.delinked == 0)).run() + )[0][0] + + if un_processed: + print(f"Remarks for {un_processed} Payment Ledger records will be updated from GL Entry") + + ifelse = CustomFunction("IF", ["condition", "then", "else"]) + + processed = 0 + last_percent_update = 0 batch_size = 1000 - for batch in create_batch(pl_entries, batch_size): - for entry in batch: - query = ( - qb.update(ple) - .set(ple.remarks, entry.gle_remarks) - .where( - (ple.company == entry.company) - & (ple.account == entry.account) - & (ple.party_type == entry.party_type) - & (ple.party == entry.party) - & (ple.voucher_type == entry.voucher_type) - & (ple.voucher_no == entry.voucher_no) + last_name = None + + while True: + if last_name: + where_clause = (ple.name.gt(last_name)) & (ple.remarks.isnull()) & (ple.delinked == 0) + else: + where_clause = (ple.remarks.isnull()) & (ple.delinked == 0) + + # results are deterministic + names = ( + qb.from_(ple).select(ple.name).where(where_clause).orderby(ple.name).limit(batch_size).run() + ) + + if names: + last_name = names[-1][0] + + pl_entries = ( + qb.from_(ple) + .left_join(gle) + .on( + (ple.account == gle.account) + & (ple.party_type == gle.party_type) + & (ple.party == gle.party) + & (ple.voucher_type == gle.voucher_type) + & (ple.voucher_no == gle.voucher_no) + & ( + ple.against_voucher_type + == IfNull( + ifelse(gle.against_voucher_type == "", None, gle.against_voucher_type), gle.voucher_type + ) + ) + & ( + ple.against_voucher_no + == IfNull(ifelse(gle.against_voucher == "", None, gle.against_voucher), gle.voucher_no) + ) + & (ple.company == gle.company) + & ( + ((ple.account_type == "Receivable") & (ple.amount == (gle.debit - gle.credit))) + | (ple.account_type == "Payable") & (ple.amount == (gle.credit - gle.debit)) + ) + & (gle.remarks.notnull()) + & (gle.is_cancelled == 0) + ) + .select(ple.name) + .distinct() + .select( + gle.remarks.as_("gle_remarks"), ) + .where(ple.name.isin(names)) + .run(as_dict=True) ) - query.run() - frappe.db.commit() + if pl_entries: + for entry in pl_entries: + query = qb.update(ple).set(ple.remarks, entry.gle_remarks).where((ple.name == entry.name)) + query.run() + + frappe.db.commit() + + processed += len(pl_entries) + percentage = flt((processed / un_processed) * 100, 2) + if percentage - last_percent_update > 1: + print(f"{percentage}% ({processed}) PLE records updated") + last_percent_update = percentage + + else: + break + print("Remarks succesfully migrated") From 3ce8dc70cbdfab46789480b1e70f818bc6a328a3 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Fri, 20 Jan 2023 15:32:16 +0530 Subject: [PATCH 131/355] perf: reduce memory usage by paging through records While migrating GL entries to Payment Ledger, page through records using primary key to reduce memory usage. (cherry picked from commit fee0ca8cd9a629389335af7b12fc80bf3cebf7fb) --- .../v14_0/migrate_gl_to_payment_ledger.py | 147 ++++++++++++------ 1 file changed, 97 insertions(+), 50 deletions(-) diff --git a/erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py b/erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py index e15aa4a1f41e..853a99a48959 100644 --- a/erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py +++ b/erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py @@ -2,7 +2,8 @@ from frappe import qb from frappe.query_builder import Case, CustomFunction from frappe.query_builder.custom import ConstantColumn -from frappe.query_builder.functions import IfNull +from frappe.query_builder.functions import Count, IfNull +from frappe.utils import flt from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import ( get_dimensions, @@ -17,9 +18,9 @@ def create_accounting_dimension_fields(): make_dimension_in_accounting_doctypes(dimension, ["Payment Ledger Entry"]) -def generate_name_for_payment_ledger_entries(gl_entries): - for index, entry in enumerate(gl_entries, 1): - entry.name = index +def generate_name_for_payment_ledger_entries(gl_entries, start): + for index, entry in enumerate(gl_entries, 0): + entry.name = start + index def get_columns(): @@ -81,6 +82,14 @@ def insert_chunk_into_payment_ledger(insert_query, gl_entries): def execute(): + """ + Description: + Migrate records from `tabGL Entry` to `tabPayment Ledger Entry`. + Patch is non-resumable. if patch failed or is terminatted abnormally, clear 'tabPayment Ledger Entry' table manually before re-running. Re-running is safe only during V13->V14 update. + + Note: Post successful migration to V14, re-running is NOT-SAFE and SHOULD NOT be attempted. + """ + if frappe.reload_doc("accounts", "doctype", "payment_ledger_entry"): # create accounting dimension fields in Payment Ledger create_accounting_dimension_fields() @@ -89,52 +98,90 @@ def execute(): account = qb.DocType("Account") ifelse = CustomFunction("IF", ["condition", "then", "else"]) - gl_entries = ( + # Get Records Count + accounts = ( + qb.from_(account) + .select(account.name) + .where((account.account_type == "Receivable") | (account.account_type == "Payable")) + .orderby(account.name) + ) + un_processed = ( qb.from_(gl) - .inner_join(account) - .on((gl.account == account.name) & (account.account_type.isin(["Receivable", "Payable"]))) - .select( - gl.star, - ConstantColumn(1).as_("docstatus"), - account.account_type.as_("account_type"), - IfNull( - ifelse(gl.against_voucher_type == "", None, gl.against_voucher_type), gl.voucher_type - ).as_("against_voucher_type"), - IfNull(ifelse(gl.against_voucher == "", None, gl.against_voucher), gl.voucher_no).as_( - "against_voucher_no" - ), - # convert debit/credit to amount - Case() - .when(account.account_type == "Receivable", gl.debit - gl.credit) - .else_(gl.credit - gl.debit) - .as_("amount"), - # convert debit/credit in account currency to amount in account currency - Case() - .when( - account.account_type == "Receivable", - gl.debit_in_account_currency - gl.credit_in_account_currency, + .select(Count(gl.name)) + .where((gl.is_cancelled == 0) & (gl.account.isin(accounts))) + .run() + )[0][0] + + if un_processed: + print(f"Migrating {un_processed} GL Entries to Payment Ledger") + + processed = 0 + last_update_percent = 0 + batch_size = 5000 + last_name = None + + while True: + if last_name: + where_clause = gl.name.gt(last_name) & (gl.is_cancelled == 0) + else: + where_clause = gl.is_cancelled == 0 + + gl_entries = ( + qb.from_(gl) + .inner_join(account) + .on((gl.account == account.name) & (account.account_type.isin(["Receivable", "Payable"]))) + .select( + gl.star, + ConstantColumn(1).as_("docstatus"), + account.account_type.as_("account_type"), + IfNull( + ifelse(gl.against_voucher_type == "", None, gl.against_voucher_type), gl.voucher_type + ).as_("against_voucher_type"), + IfNull(ifelse(gl.against_voucher == "", None, gl.against_voucher), gl.voucher_no).as_( + "against_voucher_no" + ), + # convert debit/credit to amount + Case() + .when(account.account_type == "Receivable", gl.debit - gl.credit) + .else_(gl.credit - gl.debit) + .as_("amount"), + # convert debit/credit in account currency to amount in account currency + Case() + .when( + account.account_type == "Receivable", + gl.debit_in_account_currency - gl.credit_in_account_currency, + ) + .else_(gl.credit_in_account_currency - gl.debit_in_account_currency) + .as_("amount_in_account_currency"), + ) + .where(where_clause) + .orderby(gl.name) + .limit(batch_size) + .run(as_dict=True) ) - .else_(gl.credit_in_account_currency - gl.debit_in_account_currency) - .as_("amount_in_account_currency"), - ) - .where(gl.is_cancelled == 0) - .orderby(gl.creation) - .run(as_dict=True) - ) - # primary key(name) for payment ledger records - generate_name_for_payment_ledger_entries(gl_entries) - - # split data into chunks - chunk_size = 1000 - try: - for i in range(0, len(gl_entries), chunk_size): - insert_query = build_insert_query() - insert_chunk_into_payment_ledger(insert_query, gl_entries[i : i + chunk_size]) - frappe.db.commit() - except Exception as err: - frappe.db.rollback() - ple = qb.DocType("Payment Ledger Entry") - qb.from_(ple).delete().where(ple.docstatus >= 0).run() - frappe.db.commit() - raise err + if gl_entries: + last_name = gl_entries[-1].name + + # primary key(name) for payment ledger records + generate_name_for_payment_ledger_entries(gl_entries, processed) + + try: + insert_query = build_insert_query() + insert_chunk_into_payment_ledger(insert_query, gl_entries) + frappe.db.commit() + + processed += len(gl_entries) + + # Progress message + percent = flt((processed / un_processed) * 100, 2) + if percent - last_update_percent > 1: + print(f"{percent}% ({processed}) records processed") + last_update_percent = percent + + except Exception as err: + print("Migration Failed. Clear `tabPayment Ledger Entry` table before re-running") + raise err + else: + break + print(f"{processed} records have been sucessfully migrated") From 9f3bb849906c2fe95cc65502411aa9b25404446b Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sun, 29 Jan 2023 11:52:25 +0530 Subject: [PATCH 132/355] chore: column width in `Warehouse wise Item Balance Age and Value` report (cherry picked from commit d7a665cb8478c72efbb7046ec1432eaa04ecc247) --- .../warehouse_wise_item_balance_age_and_value.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/erpnext/stock/report/warehouse_wise_item_balance_age_and_value/warehouse_wise_item_balance_age_and_value.py b/erpnext/stock/report/warehouse_wise_item_balance_age_and_value/warehouse_wise_item_balance_age_and_value.py index b5c6764224bd..55454ded71e1 100644 --- a/erpnext/stock/report/warehouse_wise_item_balance_age_and_value/warehouse_wise_item_balance_age_and_value.py +++ b/erpnext/stock/report/warehouse_wise_item_balance_age_and_value/warehouse_wise_item_balance_age_and_value.py @@ -89,10 +89,10 @@ def get_columns(filters): """return columns""" columns = [ - _("Item") + ":Link/Item:180", - _("Item Group") + "::100", + _("Item") + ":Link/Item:150", + _("Item Group") + "::120", _("Value") + ":Currency:120", - _("Age") + ":Float:80", + _("Age") + ":Float:120", ] return columns @@ -123,7 +123,7 @@ def get_warehouse_list(filters): def add_warehouse_column(columns, warehouse_list): if len(warehouse_list) > 1: - columns += [_("Total Qty") + ":Int:90"] + columns += [_("Total Qty") + ":Int:120"] for wh in warehouse_list: - columns += [_(wh.name) + ":Int:120"] + columns += [_(wh.name) + ":Int:100"] From 00e93dc0761794316da99284d5e061794515ff7c Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sun, 29 Jan 2023 12:22:01 +0530 Subject: [PATCH 133/355] chore: add `Item Name` column in `Warehouse wise Item Balance Age and Value` report (cherry picked from commit 56356ffbb9302d36c6b206102fda94fc5997f2a6) --- .../warehouse_wise_item_balance_age_and_value.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/report/warehouse_wise_item_balance_age_and_value/warehouse_wise_item_balance_age_and_value.py b/erpnext/stock/report/warehouse_wise_item_balance_age_and_value/warehouse_wise_item_balance_age_and_value.py index 55454ded71e1..abbb33b2f16c 100644 --- a/erpnext/stock/report/warehouse_wise_item_balance_age_and_value/warehouse_wise_item_balance_age_and_value.py +++ b/erpnext/stock/report/warehouse_wise_item_balance_age_and_value/warehouse_wise_item_balance_age_and_value.py @@ -62,7 +62,7 @@ def execute(filters=None): continue total_stock_value = sum(item_value[(item, item_group)]) - row = [item, item_group, total_stock_value] + row = [item, item_map[item]["item_name"], item_group, total_stock_value] fifo_queue = item_ageing[item]["fifo_queue"] average_age = 0.00 @@ -90,6 +90,7 @@ def get_columns(filters): columns = [ _("Item") + ":Link/Item:150", + _("Item Name") + ":Link/Item:150", _("Item Group") + "::120", _("Value") + ":Currency:120", _("Age") + ":Float:120", From c8c9c509932c6ccdc8350d3b77d94244fa3a515b Mon Sep 17 00:00:00 2001 From: developsessions Date: Fri, 3 Feb 2023 11:30:29 +0100 Subject: [PATCH 134/355] fix: default due_date was wrong calculated on template "_Test Payment Term Template 1" (last day of next month) (cherry picked from commit ce8a1086a7b4cc3c6f0a9d460fe7abd742faa5d8) --- erpnext/accounts/party.py | 2 +- erpnext/buying/doctype/purchase_order/test_purchase_order.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py index bfe73f02cdc5..078e51c905f3 100644 --- a/erpnext/accounts/party.py +++ b/erpnext/accounts/party.py @@ -550,7 +550,7 @@ def get_due_date_from_template(template_name, posting_date, bill_date): elif term.due_date_based_on == "Day(s) after the end of the invoice month": due_date = max(due_date, add_days(get_last_day(due_date), term.credit_days)) else: - due_date = max(due_date, add_months(get_last_day(due_date), term.credit_months)) + due_date = max(due_date, get_last_day(add_months(due_date, term.credit_months))) return due_date diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py index f0360b27dc04..3c08d53288be 100644 --- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py @@ -23,6 +23,7 @@ from erpnext.stock.doctype.purchase_receipt.purchase_receipt import ( make_purchase_invoice as make_pi_from_pr, ) +from erpnext.accounts.party import get_due_date_from_template class TestPurchaseOrder(FrappeTestCase): @@ -685,6 +686,10 @@ def test_po_for_blocked_supplier_payments_past_date(self): else: raise Exception + def test_default_payment_terms(self): + due_date = get_due_date_from_template("_Test Payment Term Template 1", "2023-02-03") + self.assertEqual(due_date, "2023-03-31") + def test_terms_are_not_copied_if_automatically_fetch_payment_terms_is_unchecked(self): po = create_purchase_order(do_not_save=1) po.payment_terms_template = "_Test Payment Term Template" From 76c4dc81771dff5e0394c22ae7262ebe101fef7d Mon Sep 17 00:00:00 2001 From: developsessions Date: Fri, 3 Feb 2023 13:55:36 +0100 Subject: [PATCH 135/355] style: lint wrong from position (cherry picked from commit c80aaad437e5b080d9bd929cbd5d22afcbbe77c6) --- erpnext/buying/doctype/purchase_order/test_purchase_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py index 3c08d53288be..14c54e92fa69 100644 --- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py @@ -10,6 +10,7 @@ from frappe.utils.data import today from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry +from erpnext.accounts.party import get_due_date_from_template from erpnext.buying.doctype.purchase_order.purchase_order import make_inter_company_sales_order from erpnext.buying.doctype.purchase_order.purchase_order import ( make_purchase_invoice as make_pi_from_po, @@ -23,7 +24,6 @@ from erpnext.stock.doctype.purchase_receipt.purchase_receipt import ( make_purchase_invoice as make_pi_from_pr, ) -from erpnext.accounts.party import get_due_date_from_template class TestPurchaseOrder(FrappeTestCase): From ced9274d1b394a3be8c83f47db1b5d2bace36ad9 Mon Sep 17 00:00:00 2001 From: developsessions Date: Fri, 3 Feb 2023 14:50:44 +0100 Subject: [PATCH 136/355] fix: Add missing 1 required positional argument: 'bill_date' (cherry picked from commit be1f94199681a785173fef20be5ce9cc6932c134) --- erpnext/buying/doctype/purchase_order/test_purchase_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py index 14c54e92fa69..f3881bd2ecc5 100644 --- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py @@ -687,7 +687,7 @@ def test_po_for_blocked_supplier_payments_past_date(self): raise Exception def test_default_payment_terms(self): - due_date = get_due_date_from_template("_Test Payment Term Template 1", "2023-02-03") + due_date = get_due_date_from_template("_Test Payment Term Template 1", "2023-02-03", None) self.assertEqual(due_date, "2023-03-31") def test_terms_are_not_copied_if_automatically_fetch_payment_terms_is_unchecked(self): From 7228a492ef2390b2acb08426b363633690098ecf Mon Sep 17 00:00:00 2001 From: developsessions Date: Fri, 3 Feb 2023 21:21:43 +0100 Subject: [PATCH 137/355] fix: failed test, convert date time to string (cherry picked from commit 9d0096ad9ea17565d8ba692bb1c36ad7a64e96d5) --- erpnext/buying/doctype/purchase_order/test_purchase_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py index f3881bd2ecc5..4615b695d114 100644 --- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py @@ -687,7 +687,7 @@ def test_po_for_blocked_supplier_payments_past_date(self): raise Exception def test_default_payment_terms(self): - due_date = get_due_date_from_template("_Test Payment Term Template 1", "2023-02-03", None) + due_date = get_due_date_from_template("_Test Payment Term Template 1", "2023-02-03", None).strftime("%Y-%m-%d") self.assertEqual(due_date, "2023-03-31") def test_terms_are_not_copied_if_automatically_fetch_payment_terms_is_unchecked(self): From d2836c16a7d0c945fbea23191a9441e67732efe2 Mon Sep 17 00:00:00 2001 From: developsessions Date: Sat, 4 Feb 2023 09:12:29 +0100 Subject: [PATCH 138/355] style: apply results of lint run (cherry picked from commit c8cd351b39e57295fb477b70c29dba14c13bb4dd) --- erpnext/buying/doctype/purchase_order/test_purchase_order.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py index 4615b695d114..920486a78ef9 100644 --- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py @@ -687,7 +687,9 @@ def test_po_for_blocked_supplier_payments_past_date(self): raise Exception def test_default_payment_terms(self): - due_date = get_due_date_from_template("_Test Payment Term Template 1", "2023-02-03", None).strftime("%Y-%m-%d") + due_date = get_due_date_from_template( + "_Test Payment Term Template 1", "2023-02-03", None + ).strftime("%Y-%m-%d") self.assertEqual(due_date, "2023-03-31") def test_terms_are_not_copied_if_automatically_fetch_payment_terms_is_unchecked(self): From e0cd6c20a3a317f567778e22c8f8b0df19c1891c Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 2 Feb 2023 18:40:15 +0530 Subject: [PATCH 139/355] fix: negative stock error (cherry picked from commit 6d513e2519e3c0d4ffe6a5c9b2620ab0bee1b347) --- erpnext/stock/stock_ledger.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index d8b12ed5b92a..08fc6fbd42fb 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -1050,7 +1050,7 @@ def update_bin(self): frappe.db.set_value("Bin", bin_name, updated_values, update_modified=True) -def get_previous_sle_of_current_voucher(args, exclude_current_voucher=False): +def get_previous_sle_of_current_voucher(args, operator="<", exclude_current_voucher=False): """get stock ledger entries filtered by specific posting datetime conditions""" args["time_format"] = "%H:%i:%s" @@ -1076,13 +1076,13 @@ def get_previous_sle_of_current_voucher(args, exclude_current_voucher=False): posting_date < %(posting_date)s or ( posting_date = %(posting_date)s and - time_format(posting_time, %(time_format)s) < time_format(%(posting_time)s, %(time_format)s) + time_format(posting_time, %(time_format)s) {operator} time_format(%(posting_time)s, %(time_format)s) ) ) order by timestamp(posting_date, posting_time) desc, creation desc limit 1 for update""".format( - voucher_condition=voucher_condition + operator=operator, voucher_condition=voucher_condition ), args, as_dict=1, @@ -1375,7 +1375,7 @@ def get_stock_reco_qty_shift(args): stock_reco_qty_shift = flt(args.actual_qty) else: # reco is being submitted - last_balance = get_previous_sle_of_current_voucher(args, exclude_current_voucher=True).get( + last_balance = get_previous_sle_of_current_voucher(args, "<=", exclude_current_voucher=True).get( "qty_after_transaction" ) From 388cc31e9e4f1b11d4f7af53bfd647b279d4dba8 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 2 Feb 2023 18:54:28 +0530 Subject: [PATCH 140/355] test: test case (cherry picked from commit 9ae7578b078fd9809ad3f04a62d7025d104b706f) --- .../doctype/stock_entry/test_stock_entry.py | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py index 38bf0a5f9e58..cc06bd709ad4 100644 --- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py @@ -1662,6 +1662,48 @@ def test_batch_expiry(self): self.assertRaises(BatchExpiredError, se.save) + def test_negative_stock_reco(self): + from erpnext.controllers.stock_controller import BatchExpiredError + from erpnext.stock.doctype.batch.test_batch import make_new_batch + + frappe.db.set_single_value("Stock Settings", "allow_negative_stock", 0) + + item_code = "Test Negative Item - 001" + item_doc = create_item(item_code=item_code, is_stock_item=1, valuation_rate=10) + + make_stock_entry( + item_code=item_code, + posting_date=add_days(today(), -3), + posting_time="00:00:00", + purpose="Material Receipt", + qty=10, + to_warehouse="_Test Warehouse - _TC", + do_not_save=True, + ) + + make_stock_entry( + item_code=item_code, + posting_date=today(), + posting_time="00:00:00", + purpose="Material Receipt", + qty=8, + from_warehouse="_Test Warehouse - _TC", + do_not_save=True, + ) + + sr_doc = create_stock_reconciliation( + purpose="Stock Reconciliation", + posting_date=add_days(today(), -3), + posting_time="00:00:00", + item_code=item_code, + warehouse="_Test Warehouse - _TC", + valuation_rate=10, + qty=7, + do_not_submit=True, + ) + + self.assertRaises(frappe.ValidationError, sr_doc.submit) + def make_serialized_item(**args): args = frappe._dict(args) From 04a474d0a12fa51211b5878a19ada7f8e7848475 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Fri, 3 Feb 2023 18:08:34 +0530 Subject: [PATCH 141/355] fix: stock entry from item dashboard (stock levels) (cherry picked from commit dc0ddf8d7eb41e4aeaa364c3b0d00dac5b2c9370) --- erpnext/stock/dashboard/item_dashboard.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/erpnext/stock/dashboard/item_dashboard.js b/erpnext/stock/dashboard/item_dashboard.js index 6e7622c067f0..bef438f9fd72 100644 --- a/erpnext/stock/dashboard/item_dashboard.js +++ b/erpnext/stock/dashboard/item_dashboard.js @@ -42,7 +42,7 @@ erpnext.stock.ItemDashboard = class ItemDashboard { let warehouse = unescape(element.attr('data-warehouse')); let actual_qty = unescape(element.attr('data-actual_qty')); let disable_quick_entry = Number(unescape(element.attr('data-disable_quick_entry'))); - let entry_type = action === "Move" ? "Material Transfer" : null; + let entry_type = action === "Move" ? "Material Transfer" : "Material Receipt"; if (disable_quick_entry) { open_stock_entry(item, warehouse, entry_type); @@ -63,11 +63,19 @@ erpnext.stock.ItemDashboard = class ItemDashboard { function open_stock_entry(item, warehouse, entry_type) { frappe.model.with_doctype('Stock Entry', function () { var doc = frappe.model.get_new_doc('Stock Entry'); - if (entry_type) doc.stock_entry_type = entry_type; + if (entry_type) { + doc.stock_entry_type = entry_type; + } var row = frappe.model.add_child(doc, 'items'); row.item_code = item; - row.s_warehouse = warehouse; + + if (entry_type === "Material Transfer") { + row.s_warehouse = warehouse; + } + else { + row.t_warehouse = warehouse; + } frappe.set_route('Form', doc.doctype, doc.name); }); From c98b2b59181546f246912fcd8c649ae773b68fab Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Fri, 3 Feb 2023 22:58:22 +0530 Subject: [PATCH 142/355] fix: allow PI cancel if linked asset is cancelled (cherry picked from commit b961321de5447fe8049472f51ae89f1a3ff76665) --- erpnext/controllers/buying_controller.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py index 445620a1246f..31e5dd777f30 100644 --- a/erpnext/controllers/buying_controller.py +++ b/erpnext/controllers/buying_controller.py @@ -716,6 +716,8 @@ def update_fixed_asset(self, field, delete_asset=False): asset.purchase_date = self.posting_date asset.supplier = self.supplier elif self.docstatus == 2: + if asset.docstatus == 2: + break if asset.docstatus == 0: asset.set(field, None) asset.supplier = None From 68df9ad83c7bb1b2042a700c229157b9f848436f Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Sat, 4 Feb 2023 11:20:26 +0530 Subject: [PATCH 143/355] chore: use continue, not break (cherry picked from commit 3380dc5deaac8df145f424153254466b35ddd02b) --- erpnext/controllers/buying_controller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py index 31e5dd777f30..cf267716d585 100644 --- a/erpnext/controllers/buying_controller.py +++ b/erpnext/controllers/buying_controller.py @@ -717,7 +717,7 @@ def update_fixed_asset(self, field, delete_asset=False): asset.supplier = self.supplier elif self.docstatus == 2: if asset.docstatus == 2: - break + continue if asset.docstatus == 0: asset.set(field, None) asset.supplier = None From 6e8a985bc6e532371fd12fc485a8540e5586b66f Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 10 Feb 2023 20:55:03 +0530 Subject: [PATCH 144/355] chore: typo in stock_entry get_uom_details (backport #33998) (#34003) chore: typo in stock_entry get_uom_details (#33998) fix: typo in stock_entry get_uom_details (cherry picked from commit 185c543b7308bbf7b525f6c269ff023cfd08e6bb) Co-authored-by: Akshay <60477442+akshayitzme@users.noreply.github.com> --- erpnext/stock/doctype/stock_entry/stock_entry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 9a2473170458..e263a278bef9 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -2497,7 +2497,7 @@ def get_uom_details(item_code, uom, qty): if not conversion_factor: frappe.msgprint( - _("UOM coversion factor required for UOM: {0} in Item: {1}").format(uom, item_code) + _("UOM conversion factor required for UOM: {0} in Item: {1}").format(uom, item_code) ) ret = {"uom": ""} else: From 52bfb667294b39bcd621b536459f0d2b0e43a824 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 11 Feb 2023 11:20:10 +0530 Subject: [PATCH 145/355] feat: Add filters in Loan Interest Report (#33907) * feat: Add filters in Loan Interest Report (#33907) (cherry picked from commit e478a5d0ceb092c0b05849189e89b5cadc16afb8) * chore: remove flaky tests --------- Co-authored-by: Deepesh Garg --- .../test_bulk_transaction_log.py | 11 - .../test_procurement_tracker.py | 58 +--- .../loan_interest_report.js | 36 +- .../loan_interest_report.py | 51 ++- .../workspace/loans/loans.json | 315 ++++++++++++++++++ 5 files changed, 392 insertions(+), 79 deletions(-) create mode 100644 erpnext/loan_management/workspace/loans/loans.json diff --git a/erpnext/bulk_transaction/doctype/bulk_transaction_log/test_bulk_transaction_log.py b/erpnext/bulk_transaction/doctype/bulk_transaction_log/test_bulk_transaction_log.py index 646dba51ce96..c673be89b3f6 100644 --- a/erpnext/bulk_transaction/doctype/bulk_transaction_log/test_bulk_transaction_log.py +++ b/erpnext/bulk_transaction/doctype/bulk_transaction_log/test_bulk_transaction_log.py @@ -15,17 +15,6 @@ def setUp(self): create_customer() create_item() - def test_for_single_record(self): - so_name = create_so() - transaction_processing([{"name": so_name}], "Sales Order", "Sales Invoice") - data = frappe.db.get_list( - "Sales Invoice", - filters={"posting_date": date.today(), "customer": "Bulk Customer"}, - fields=["*"], - ) - if not data: - self.fail("No Sales Invoice Created !") - def test_entry_in_log(self): so_name = create_so() transaction_processing([{"name": so_name}], "Sales Order", "Sales Invoice") diff --git a/erpnext/buying/report/procurement_tracker/test_procurement_tracker.py b/erpnext/buying/report/procurement_tracker/test_procurement_tracker.py index 47a66ad46f2a..9b53421319d9 100644 --- a/erpnext/buying/report/procurement_tracker/test_procurement_tracker.py +++ b/erpnext/buying/report/procurement_tracker/test_procurement_tracker.py @@ -15,60 +15,4 @@ class TestProcurementTracker(FrappeTestCase): - def test_result_for_procurement_tracker(self): - filters = {"company": "_Test Procurement Company", "cost_center": "Main - _TPC"} - expected_data = self.generate_expected_data() - report = execute(filters) - - length = len(report[1]) - self.assertEqual(expected_data, report[1][length - 1]) - - def generate_expected_data(self): - if not frappe.db.exists("Company", "_Test Procurement Company"): - frappe.get_doc( - dict( - doctype="Company", - company_name="_Test Procurement Company", - abbr="_TPC", - default_currency="INR", - country="Pakistan", - ) - ).insert() - warehouse = create_warehouse("_Test Procurement Warehouse", company="_Test Procurement Company") - mr = make_material_request( - company="_Test Procurement Company", warehouse=warehouse, cost_center="Main - _TPC" - ) - po = make_purchase_order(mr.name) - po.supplier = "_Test Supplier" - po.get("items")[0].cost_center = "Main - _TPC" - po.submit() - pr = make_purchase_receipt(po.name) - pr.get("items")[0].cost_center = "Main - _TPC" - pr.submit() - date_obj = datetime.date(datetime.now()) - - po.load_from_db() - - expected_data = { - "material_request_date": date_obj, - "cost_center": "Main - _TPC", - "project": None, - "requesting_site": "_Test Procurement Warehouse - _TPC", - "requestor": "Administrator", - "material_request_no": mr.name, - "item_code": "_Test Item", - "quantity": 10.0, - "unit_of_measurement": "_Test UOM", - "status": "To Bill", - "purchase_order_date": date_obj, - "purchase_order": po.name, - "supplier": "_Test Supplier", - "estimated_cost": 0.0, - "actual_cost": 0.0, - "purchase_order_amt": po.net_total, - "purchase_order_amt_in_company_currency": po.base_net_total, - "expected_delivery_date": date_obj, - "actual_delivery_date": date_obj, - } - - return expected_data + pass diff --git a/erpnext/loan_management/report/loan_interest_report/loan_interest_report.js b/erpnext/loan_management/report/loan_interest_report/loan_interest_report.js index a227b6d79733..458c79a1ea8f 100644 --- a/erpnext/loan_management/report/loan_interest_report/loan_interest_report.js +++ b/erpnext/loan_management/report/loan_interest_report/loan_interest_report.js @@ -11,6 +11,40 @@ frappe.query_reports["Loan Interest Report"] = { "options": "Company", "default": frappe.defaults.get_user_default("Company"), "reqd": 1 - } + }, + { + "fieldname":"applicant_type", + "label": __("Applicant Type"), + "fieldtype": "Select", + "options": ["Customer", "Employee"], + "reqd": 1, + "default": "Customer", + on_change: function() { + frappe.query_report.set_filter_value('applicant', ""); + } + }, + { + "fieldname": "applicant", + "label": __("Applicant"), + "fieldtype": "Dynamic Link", + "get_options": function() { + var applicant_type = frappe.query_report.get_filter_value('applicant_type'); + var applicant = frappe.query_report.get_filter_value('applicant'); + if(applicant && !applicant_type) { + frappe.throw(__("Please select Applicant Type first")); + } + return applicant_type; + } + }, + { + "fieldname":"from_date", + "label": __("From Date"), + "fieldtype": "Date", + }, + { + "fieldname":"to_date", + "label": __("From Date"), + "fieldtype": "Date", + }, ] }; diff --git a/erpnext/loan_management/report/loan_interest_report/loan_interest_report.py b/erpnext/loan_management/report/loan_interest_report/loan_interest_report.py index 9186ce617439..58a7880a4592 100644 --- a/erpnext/loan_management/report/loan_interest_report/loan_interest_report.py +++ b/erpnext/loan_management/report/loan_interest_report/loan_interest_report.py @@ -13,12 +13,12 @@ def execute(filters=None): - columns = get_columns(filters) + columns = get_columns() data = get_active_loan_details(filters) return columns, data -def get_columns(filters): +def get_columns(): columns = [ {"label": _("Loan"), "fieldname": "loan", "fieldtype": "Link", "options": "Loan", "width": 160}, {"label": _("Status"), "fieldname": "status", "fieldtype": "Data", "width": 160}, @@ -70,6 +70,13 @@ def get_columns(filters): "options": "currency", "width": 120, }, + { + "label": _("Accrued Principal"), + "fieldname": "accrued_principal", + "fieldtype": "Currency", + "options": "currency", + "width": 120, + }, { "label": _("Total Repayment"), "fieldname": "total_repayment", @@ -137,11 +144,16 @@ def get_columns(filters): def get_active_loan_details(filters): - - filter_obj = {"status": ("!=", "Closed")} + filter_obj = { + "status": ("!=", "Closed"), + "docstatus": 1, + } if filters.get("company"): filter_obj.update({"company": filters.get("company")}) + if filters.get("applicant"): + filter_obj.update({"applicant": filters.get("applicant")}) + loan_details = frappe.get_all( "Loan", fields=[ @@ -167,8 +179,8 @@ def get_active_loan_details(filters): sanctioned_amount_map = get_sanctioned_amount_map() penal_interest_rate_map = get_penal_interest_rate_map() - payments = get_payments(loan_list) - accrual_map = get_interest_accruals(loan_list) + payments = get_payments(loan_list, filters) + accrual_map = get_interest_accruals(loan_list, filters) currency = erpnext.get_company_currency(filters.get("company")) for loan in loan_details: @@ -183,6 +195,7 @@ def get_active_loan_details(filters): - flt(loan.written_off_amount), "total_repayment": flt(payments.get(loan.loan)), "accrued_interest": flt(accrual_map.get(loan.loan, {}).get("accrued_interest")), + "accrued_principal": flt(accrual_map.get(loan.loan, {}).get("accrued_principal")), "interest_outstanding": flt(accrual_map.get(loan.loan, {}).get("interest_outstanding")), "penalty": flt(accrual_map.get(loan.loan, {}).get("penalty")), "penalty_interest": penal_interest_rate_map.get(loan.loan_type), @@ -212,20 +225,35 @@ def get_sanctioned_amount_map(): ) -def get_payments(loans): +def get_payments(loans, filters): + query_filters = {"against_loan": ("in", loans)} + + if filters.get("from_date"): + query_filters.update({"posting_date": (">=", filters.get("from_date"))}) + + if filters.get("to_date"): + query_filters.update({"posting_date": ("<=", filters.get("to_date"))}) + return frappe._dict( frappe.get_all( "Loan Repayment", fields=["against_loan", "sum(amount_paid)"], - filters={"against_loan": ("in", loans)}, + filters=query_filters, group_by="against_loan", as_list=1, ) ) -def get_interest_accruals(loans): +def get_interest_accruals(loans, filters): accrual_map = {} + query_filters = {"loan": ("in", loans)} + + if filters.get("from_date"): + query_filters.update({"posting_date": (">=", filters.get("from_date"))}) + + if filters.get("to_date"): + query_filters.update({"posting_date": ("<=", filters.get("to_date"))}) interest_accruals = frappe.get_all( "Loan Interest Accrual", @@ -236,8 +264,9 @@ def get_interest_accruals(loans): "penalty_amount", "paid_interest_amount", "accrual_type", + "payable_principal_amount", ], - filters={"loan": ("in", loans)}, + filters=query_filters, order_by="posting_date desc", ) @@ -246,6 +275,7 @@ def get_interest_accruals(loans): entry.loan, { "accrued_interest": 0.0, + "accrued_principal": 0.0, "undue_interest": 0.0, "interest_outstanding": 0.0, "last_accrual_date": "", @@ -270,6 +300,7 @@ def get_interest_accruals(loans): accrual_map[entry.loan]["undue_interest"] += entry.interest_amount - entry.paid_interest_amount accrual_map[entry.loan]["accrued_interest"] += entry.interest_amount + accrual_map[entry.loan]["accrued_principal"] += entry.payable_principal_amount if last_accrual_date and getdate(entry.posting_date) == last_accrual_date: accrual_map[entry.loan]["penalty"] = entry.penalty_amount diff --git a/erpnext/loan_management/workspace/loans/loans.json b/erpnext/loan_management/workspace/loans/loans.json new file mode 100644 index 000000000000..c65be4efae9d --- /dev/null +++ b/erpnext/loan_management/workspace/loans/loans.json @@ -0,0 +1,315 @@ +{ + "charts": [], + "content": "[{\"id\":\"_38WStznya\",\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"id\":\"t7o_K__1jB\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Loan Application\",\"col\":3}},{\"id\":\"IRiNDC6w1p\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Loan\",\"col\":3}},{\"id\":\"xbbo0FYbq0\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"id\":\"7ZL4Bro-Vi\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"yhyioTViZ3\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"oYFn4b1kSw\",\"type\":\"card\",\"data\":{\"card_name\":\"Loan\",\"col\":4}},{\"id\":\"vZepJF5tl9\",\"type\":\"card\",\"data\":{\"card_name\":\"Loan Processes\",\"col\":4}},{\"id\":\"k-393Mjhqe\",\"type\":\"card\",\"data\":{\"card_name\":\"Disbursement and Repayment\",\"col\":4}},{\"id\":\"6crJ0DBiBJ\",\"type\":\"card\",\"data\":{\"card_name\":\"Loan Security\",\"col\":4}},{\"id\":\"Um5YwxVLRJ\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}}]", + "creation": "2020-03-12 16:35:55.299820", + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 0, + "icon": "loan", + "idx": 0, + "is_hidden": 0, + "label": "Loans", + "links": [ + { + "hidden": 0, + "is_query_report": 0, + "label": "Loan", + "link_count": 0, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Loan Type", + "link_count": 0, + "link_to": "Loan Type", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Loan Application", + "link_count": 0, + "link_to": "Loan Application", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Loan", + "link_count": 0, + "link_to": "Loan", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Loan Processes", + "link_count": 0, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Process Loan Security Shortfall", + "link_count": 0, + "link_to": "Process Loan Security Shortfall", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Process Loan Interest Accrual", + "link_count": 0, + "link_to": "Process Loan Interest Accrual", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Disbursement and Repayment", + "link_count": 0, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Loan Disbursement", + "link_count": 0, + "link_to": "Loan Disbursement", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Loan Repayment", + "link_count": 0, + "link_to": "Loan Repayment", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Loan Write Off", + "link_count": 0, + "link_to": "Loan Write Off", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Loan Interest Accrual", + "link_count": 0, + "link_to": "Loan Interest Accrual", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Loan Security", + "link_count": 0, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Loan Security Type", + "link_count": 0, + "link_to": "Loan Security Type", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Loan Security Price", + "link_count": 0, + "link_to": "Loan Security Price", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Loan Security", + "link_count": 0, + "link_to": "Loan Security", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Loan Security Pledge", + "link_count": 0, + "link_to": "Loan Security Pledge", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Loan Security Unpledge", + "link_count": 0, + "link_to": "Loan Security Unpledge", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Loan Security Shortfall", + "link_count": 0, + "link_to": "Loan Security Shortfall", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Reports", + "link_count": 6, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 1, + "label": "Loan Repayment and Closure", + "link_count": 0, + "link_to": "Loan Repayment and Closure", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 1, + "label": "Loan Security Status", + "link_count": 0, + "link_to": "Loan Security Status", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Loan Interest Report", + "link_count": 0, + "link_to": "Loan Interest Report", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Loan Security Exposure", + "link_count": 0, + "link_to": "Loan Security Exposure", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Applicant-Wise Loan Security Exposure", + "link_count": 0, + "link_to": "Applicant-Wise Loan Security Exposure", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 1, + "label": "Loan Security Status", + "link_count": 0, + "link_to": "Loan Security Status", + "link_type": "Report", + "onboard": 0, + "type": "Link" + } + ], + "modified": "2023-01-31 19:47:13.114415", + "modified_by": "Administrator", + "module": "Loan Management", + "name": "Loans", + "owner": "Administrator", + "parent_page": "", + "public": 1, + "quick_lists": [], + "restrict_to_domain": "", + "roles": [], + "sequence_id": 16.0, + "shortcuts": [ + { + "color": "Green", + "format": "{} Open", + "label": "Loan Application", + "link_to": "Loan Application", + "stats_filter": "{ \"status\": \"Open\" }", + "type": "DocType" + }, + { + "label": "Loan", + "link_to": "Loan", + "type": "DocType" + }, + { + "doc_view": "", + "label": "Dashboard", + "link_to": "Loan Dashboard", + "type": "Dashboard" + } + ], + "title": "Loans" +} \ No newline at end of file From bb8e232aea98db7158c64e8f5a0ef9bdc57293a9 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 11 Feb 2023 11:53:27 +0530 Subject: [PATCH 146/355] fix: list view for Terms and Conditions (#33925) fix: list view for Terms and Conditions (#33925) Co-authored-by: Deepesh Garg (cherry picked from commit ab7293bcd367c287ee2663a58cce38c591783304) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- .../terms_and_conditions/terms_and_conditions.js | 13 +++---------- .../terms_and_conditions/terms_and_conditions.json | 9 ++++++--- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.js b/erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.js index 3680906057fa..c3605bf0e8bc 100644 --- a/erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.js +++ b/erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.js @@ -1,13 +1,6 @@ // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors // License: GNU General Public License v3. See license.txt - - -//--------- ONLOAD ------------- -cur_frm.cscript.onload = function(doc, cdt, cdn) { - -} - -cur_frm.cscript.refresh = function(doc, cdt, cdn) { - -} +// frappe.ui.form.on("Terms and Conditions", { +// refresh(frm) {} +// }); diff --git a/erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.json b/erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.json index f14b243512f5..f884864acfa7 100644 --- a/erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.json +++ b/erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.json @@ -33,7 +33,6 @@ "default": "0", "fieldname": "disabled", "fieldtype": "Check", - "in_list_view": 1, "label": "Disabled" }, { @@ -60,12 +59,14 @@ "default": "1", "fieldname": "selling", "fieldtype": "Check", + "in_list_view": 1, "label": "Selling" }, { "default": "1", "fieldname": "buying", "fieldtype": "Check", + "in_list_view": 1, "label": "Buying" }, { @@ -76,10 +77,11 @@ "icon": "icon-legal", "idx": 1, "links": [], - "modified": "2022-06-16 15:07:38.094844", + "modified": "2023-02-01 14:33:39.246532", "modified_by": "Administrator", "module": "Setup", "name": "Terms and Conditions", + "naming_rule": "By fieldname", "owner": "Administrator", "permissions": [ { @@ -133,5 +135,6 @@ "quick_entry": 1, "show_name_in_global_search": 1, "sort_field": "modified", - "sort_order": "ASC" + "sort_order": "ASC", + "states": [] } \ No newline at end of file From 87a8c17314c0268109d1a60d8a90c470e2548c3f Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 11 Feb 2023 11:53:47 +0530 Subject: [PATCH 147/355] fix: Amount for debit and credit notes with 0 qty line items (#33902) fix: Amount for debit and credit notes with 0 qty line items (#33902) (cherry picked from commit 47c91324b13217db83670c97a6e0488ae78b8b14) Co-authored-by: Deepesh Garg --- erpnext/public/js/controllers/taxes_and_totals.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index 2ce0c7eb00dd..a87c3ec9514b 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -126,7 +126,16 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { frappe.model.round_floats_in(item); item.net_rate = item.rate; item.qty = item.qty === undefined ? (me.frm.doc.is_return ? -1 : 1) : item.qty; - item.net_amount = item.amount = flt(item.rate * item.qty, precision("amount", item)); + + if (!(me.frm.doc.is_return || me.frm.doc.is_debit_note)) { + item.net_amount = item.amount = flt(item.rate * item.qty, precision("amount", item)); + } + else { + let qty = item.qty || 1; + qty = me.frm.doc.is_return ? -1 * qty : qty; + item.net_amount = item.amount = flt(item.rate * qty, precision("amount", item)); + } + item.item_tax_amount = 0.0; item.total_weight = flt(item.weight_per_unit * item.stock_qty); From 8e2d7bb44a383ed4c7770a2e5c8de2930c0ffc10 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 11 Feb 2023 11:54:12 +0530 Subject: [PATCH 148/355] fix: currency formatting in item-wise sales history (#33903) fix: currency formatting in item-wise sales history (#33903) * fix(item-sales-history): currency formatting * chore: linting issues * fix: convert raw sql to qb (cherry picked from commit 2cc7239dd580499f71c01d6647ab852827adf394) Co-authored-by: Dany Robert Co-authored-by: Deepesh Garg --- .../item_wise_sales_history.py | 110 +++++++++++------- 1 file changed, 66 insertions(+), 44 deletions(-) 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 e10df2acbb5e..44c4d5497bad 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 @@ -41,8 +41,20 @@ def get_columns(filters): {"label": _("Description"), "fieldtype": "Data", "fieldname": "description", "width": 150}, {"label": _("Quantity"), "fieldtype": "Float", "fieldname": "quantity", "width": 150}, {"label": _("UOM"), "fieldtype": "Link", "fieldname": "uom", "options": "UOM", "width": 100}, - {"label": _("Rate"), "fieldname": "rate", "options": "Currency", "width": 120}, - {"label": _("Amount"), "fieldname": "amount", "options": "Currency", "width": 120}, + { + "label": _("Rate"), + "fieldname": "rate", + "fieldtype": "Currency", + "options": "currency", + "width": 120, + }, + { + "label": _("Amount"), + "fieldname": "amount", + "fieldtype": "Currency", + "options": "currency", + "width": 120, + }, { "label": _("Sales Order"), "fieldtype": "Link", @@ -93,8 +105,9 @@ def get_columns(filters): }, { "label": _("Billed Amount"), - "fieldtype": "currency", + "fieldtype": "Currency", "fieldname": "billed_amount", + "options": "currency", "width": 120, }, { @@ -104,6 +117,13 @@ def get_columns(filters): "options": "Company", "width": 100, }, + { + "label": _("Currency"), + "fieldtype": "Link", + "fieldname": "currency", + "options": "Currency", + "hidden": 1, + }, ] @@ -141,31 +161,12 @@ def get_data(filters): "billed_amount": flt(record.get("billed_amt")), "company": record.get("company"), } + row["currency"] = frappe.get_cached_value("Company", row["company"], "default_currency") data.append(row) return data -def get_conditions(filters): - conditions = "" - if filters.get("item_group"): - conditions += "AND so_item.item_group = %s" % frappe.db.escape(filters.item_group) - - if filters.get("from_date"): - conditions += "AND so.transaction_date >= '%s'" % filters.from_date - - if filters.get("to_date"): - conditions += "AND so.transaction_date <= '%s'" % filters.to_date - - if filters.get("item_code"): - conditions += "AND so_item.item_code = %s" % frappe.db.escape(filters.item_code) - - if filters.get("customer"): - conditions += "AND so.customer = %s" % frappe.db.escape(filters.customer) - - return conditions - - def get_customer_details(): details = frappe.get_all("Customer", fields=["name", "customer_name", "customer_group"]) customer_details = {} @@ -187,29 +188,50 @@ def get_item_details(): def get_sales_order_details(company_list, filters): - conditions = get_conditions(filters) - - return frappe.db.sql( - """ - SELECT - so_item.item_code, so_item.description, so_item.qty, - so_item.uom, so_item.base_rate, so_item.base_amount, - so.name, so.transaction_date, so.customer,so.territory, - so.project, so_item.delivered_qty, - so_item.billed_amt, so.company - FROM - `tabSales Order` so, `tabSales Order Item` so_item - WHERE - so.name = so_item.parent - AND so.company in ({0}) - AND so.docstatus = 1 {1} - """.format( - ",".join(["%s"] * len(company_list)), conditions - ), - tuple(company_list), - as_dict=1, + db_so = frappe.qb.DocType("Sales Order") + db_so_item = frappe.qb.DocType("Sales Order Item") + + query = ( + frappe.qb.from_(db_so) + .inner_join(db_so_item) + .on(db_so_item.parent == db_so.name) + .select( + db_so.name, + db_so.customer, + db_so.transaction_date, + db_so.territory, + db_so.project, + db_so.company, + db_so_item.item_code, + db_so_item.description, + db_so_item.qty, + db_so_item.uom, + db_so_item.base_rate, + db_so_item.base_amount, + db_so_item.delivered_qty, + (db_so_item.billed_amt * db_so.conversion_rate).as_("billed_amt"), + ) + .where(db_so.docstatus == 1) + .where(db_so.company.isin(tuple(company_list))) ) + if filters.get("item_group"): + query = query.where(db_so_item.item_group == frappe.db.escape(filters.item_group)) + + if filters.get("from_date"): + query = query.where(db_so.transaction_date >= filters.from_date) + + if filters.get("to_date"): + 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)) + + if filters.get("customer"): + query = query.where(db_so.customer == filters.customer) + + return query.run(as_dict=1) + def get_chart_data(data): item_wise_sales_map = {} From 02c4c55adc87aa7423fcf2fff05568eccf135cd2 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 11 Feb 2023 11:59:23 +0530 Subject: [PATCH 149/355] fix: german chart of accounts "SKR03" (#33909) fix: german chart of accounts "SKR03" (#33909) * fix: german chart of accounts "SKR03" - Added some missing account types and tax rates - Added some missing accounts * style: convert indentation to tabs * fix: space before percentage sign * feat: add some expense accounts * refactor: replace unicode characters with utf-8 for better readability * revert: add back groups for Bank and Cash accounts Removed in 7d0d9c690068481a9730e0132c7aff34c1f56100 (cherry picked from commit 3c7b460fd8ec9e9bdc00669bbae6353b731a12eb) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> Co-authored-by: Deepesh Garg --- .../verified/de_kontenplan_SKR03_gnucash.json | 666 +++++++++--------- 1 file changed, 347 insertions(+), 319 deletions(-) diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/verified/de_kontenplan_SKR03_gnucash.json b/erpnext/accounts/doctype/account/chart_of_accounts/verified/de_kontenplan_SKR03_gnucash.json index ee501f664b67..741d4283e2f1 100644 --- a/erpnext/accounts/doctype/account/chart_of_accounts/verified/de_kontenplan_SKR03_gnucash.json +++ b/erpnext/accounts/doctype/account/chart_of_accounts/verified/de_kontenplan_SKR03_gnucash.json @@ -1,38 +1,38 @@ { - "country_code": "de", - "name": "SKR03 mit Kontonummern", - "tree": { - "Aktiva": { - "is_group": 1, + "country_code": "de", + "name": "SKR03 mit Kontonummern", + "tree": { + "Aktiva": { + "is_group": 1, "root_type": "Asset", - "A - Anlagevermögen": { - "is_group": 1, - "EDV-Software": { - "account_number": "0027", - "account_type": "Fixed Asset" - }, - "Gesch\u00e4ftsausstattung": { - "account_number": "0410", - "account_type": "Fixed Asset" - }, - "B\u00fcroeinrichtung": { - "account_number": "0420", - "account_type": "Fixed Asset" - }, - "Darlehen": { - "account_number": "0565" - }, - "Maschinen": { - "account_number": "0210", - "account_type": "Fixed Asset" - }, - "Betriebsausstattung": { - "account_number": "0400", - "account_type": "Fixed Asset" - }, - "Ladeneinrichtung": { - "account_number": "0430", - "account_type": "Fixed Asset" + "A - Anlagevermögen": { + "is_group": 1, + "EDV-Software": { + "account_number": "0027", + "account_type": "Fixed Asset" + }, + "Geschäftsausstattung": { + "account_number": "0410", + "account_type": "Fixed Asset" + }, + "Büroeinrichtung": { + "account_number": "0420", + "account_type": "Fixed Asset" + }, + "Darlehen": { + "account_number": "0565" + }, + "Maschinen": { + "account_number": "0210", + "account_type": "Fixed Asset" + }, + "Betriebsausstattung": { + "account_number": "0400", + "account_type": "Fixed Asset" + }, + "Ladeneinrichtung": { + "account_number": "0430", + "account_type": "Fixed Asset" }, "Accumulated Depreciation": { "account_type": "Accumulated Depreciation" @@ -60,36 +60,46 @@ "Durchlaufende Posten": { "account_number": "1590" }, - "Gewinnermittlung \u00a74/3 nicht Ergebniswirksam": { + "Verrechnungskonto Gewinnermittlung § 4 Abs. 3 EStG, nicht ergebniswirksam": { "account_number": "1371" }, "Abziehbare Vorsteuer": { - "account_type": "Tax", "is_group": 1, - "Abziehbare Vorsteuer 7%": { - "account_number": "1571" - }, - "Abziehbare Vorsteuer 19%": { - "account_number": "1576" + "Abziehbare Vorsteuer 7 %": { + "account_number": "1571", + "account_type": "Tax", + "tax_rate": 7.0 }, - "Abziehbare Vorsteuer nach \u00a713b UStG 19%": { - "account_number": "1577" + "Abziehbare Vorsteuer 19 %": { + "account_number": "1576", + "account_type": "Tax", + "tax_rate": 19.0 }, - "Leistungen \u00a713b UStG 19% Vorsteuer, 19% Umsatzsteuer": { - "account_number": "3120" + "Abziehbare Vorsteuer nach § 13b UStG 19 %": { + "account_number": "1577", + "account_type": "Tax", + "tax_rate": 19.0 } } }, "III. Wertpapiere": { - "is_group": 1 + "is_group": 1, + "Anteile an verbundenen Unternehmen (Umlaufvermögen)": { + "account_number": "1340" + }, + "Anteile an herrschender oder mit Mehrheit beteiligter Gesellschaft": { + "account_number": "1344" + }, + "Sonstige Wertpapiere": { + "account_number": "1348" + } }, "IV. Kassenbestand, Bundesbankguthaben, Guthaben bei Kreditinstituten und Schecks.": { "is_group": 1, "Kasse": { - "account_type": "Cash", "is_group": 1, + "account_type": "Cash", "Kasse": { - "is_group": 1, "account_number": "1000", "account_type": "Cash" } @@ -111,21 +121,21 @@ "C - Rechnungsabgrenzungsposten": { "is_group": 1, "Aktive Rechnungsabgrenzung": { - "account_number": "0980" + "account_number": "0980" } }, "D - Aktive latente Steuern": { "is_group": 1, "Aktive latente Steuern": { - "account_number": "0983" + "account_number": "0983" } }, "E - Aktiver Unterschiedsbetrag aus der Vermögensverrechnung": { "is_group": 1 } - }, - "Passiva": { - "is_group": 1, + }, + "Passiva": { + "is_group": 1, "root_type": "Liability", "A. Eigenkapital": { "is_group": 1, @@ -200,26 +210,32 @@ }, "Umsatzsteuer": { "is_group": 1, - "account_type": "Tax", - "Umsatzsteuer 7%": { - "account_number": "1771" + "Umsatzsteuer 7 %": { + "account_number": "1771", + "account_type": "Tax", + "tax_rate": 7.0 }, - "Umsatzsteuer 19%": { - "account_number": "1776" + "Umsatzsteuer 19 %": { + "account_number": "1776", + "account_type": "Tax", + "tax_rate": 19.0 }, "Umsatzsteuer-Vorauszahlung": { - "account_number": "1780" + "account_number": "1780", + "account_type": "Tax" }, "Umsatzsteuer-Vorauszahlung 1/11": { "account_number": "1781" }, - "Umsatzsteuer \u00a7 13b UStG 19%": { - "account_number": "1787" + "Umsatzsteuer nach § 13b UStG 19 %": { + "account_number": "1787", + "account_type": "Tax", + "tax_rate": 19.0 }, "Umsatzsteuer Vorjahr": { "account_number": "1790" }, - "Umsatzsteuer fr\u00fchere Jahre": { + "Umsatzsteuer frühere Jahre": { "account_number": "1791" } } @@ -234,44 +250,56 @@ "E. Passive latente Steuern": { "is_group": 1 } - }, - "Erl\u00f6se u. Ertr\u00e4ge 2/8": { - "is_group": 1, - "root_type": "Income", - "Erl\u00f6skonten 8": { + }, + "Erlöse u. Erträge 2/8": { + "is_group": 1, + "root_type": "Income", + "Erlöskonten 8": { + "is_group": 1, + "Erlöse": { + "account_number": "8200", + "account_type": "Income Account" + }, + "Erlöse USt. 19 %": { + "account_number": "8400", + "account_type": "Income Account" + }, + "Erlöse USt. 7 %": { + "account_number": "8300", + "account_type": "Income Account" + } + }, + "Ertragskonten 2": { "is_group": 1, - "Erl\u00f6se": { - "account_number": "8200", - "account_type": "Income Account" - }, - "Erl\u00f6se USt. 19%": { - "account_number": "8400", - "account_type": "Income Account" - }, - "Erl\u00f6se USt. 7%": { - "account_number": "8300", - "account_type": "Income Account" - } - }, - "Ertragskonten 2": { - "is_group": 1, - "sonstige Zinsen und \u00e4hnliche Ertr\u00e4ge": { - "account_number": "2650", - "account_type": "Income Account" - }, - "Au\u00dferordentliche Ertr\u00e4ge": { - "account_number": "2500", - "account_type": "Income Account" - }, - "Sonstige Ertr\u00e4ge": { - "account_number": "2700", - "account_type": "Income Account" - } - } - }, - "Aufwendungen 2/4": { - "is_group": 1, + "sonstige Zinsen und ähnliche Erträge": { + "account_number": "2650", + "account_type": "Income Account" + }, + "Außerordentliche Erträge": { + "account_number": "2500", + "account_type": "Income Account" + }, + "Sonstige Erträge": { + "account_number": "2700", + "account_type": "Income Account" + } + } + }, + "Aufwendungen 2/4": { + "is_group": 1, "root_type": "Expense", + "Fremdleistungen": { + "account_number": "3100", + "account_type": "Expense Account" + }, + "Fremdleistungen ohne Vorsteuer": { + "account_number": "3109", + "account_type": "Expense Account" + }, + "Bauleistungen eines im Inland ansässigen Unternehmers 19 % Vorsteuer und 19 % Umsatzsteuer": { + "account_number": "3120", + "account_type": "Expense Account" + }, "Wareneingang": { "account_number": "3200" }, @@ -298,234 +326,234 @@ "Gegenkonto 4996-4998": { "account_number": "4999" }, - "Abschreibungen": { - "is_group": 1, + "Abschreibungen": { + "is_group": 1, "Abschreibungen auf Sachanlagen (ohne AfA auf Kfz und Gebäude)": { - "account_number": "4830", - "account_type": "Accumulated Depreciation" + "account_number": "4830", + "account_type": "Accumulated Depreciation" }, "Abschreibungen auf Gebäude": { - "account_number": "4831", - "account_type": "Depreciation" + "account_number": "4831", + "account_type": "Depreciation" }, "Abschreibungen auf Kfz": { - "account_number": "4832", - "account_type": "Depreciation" + "account_number": "4832", + "account_type": "Depreciation" }, "Sofortabschreibung GWG": { - "account_number": "4855", - "account_type": "Expense Account" + "account_number": "4855", + "account_type": "Expense Account" + } + }, + "Kfz-Kosten": { + "is_group": 1, + "Kfz-Steuer": { + "account_number": "4510", + "account_type": "Expense Account" + }, + "Kfz-Versicherungen": { + "account_number": "4520", + "account_type": "Expense Account" + }, + "laufende Kfz-Betriebskosten": { + "account_number": "4530", + "account_type": "Expense Account" + }, + "Kfz-Reparaturen": { + "account_number": "4540", + "account_type": "Expense Account" + }, + "Fremdfahrzeuge": { + "account_number": "4570", + "account_type": "Expense Account" + }, + "sonstige Kfz-Kosten": { + "account_number": "4580", + "account_type": "Expense Account" + } + }, + "Personalkosten": { + "is_group": 1, + "Gehälter": { + "account_number": "4120", + "account_type": "Expense Account" + }, + "gesetzliche soziale Aufwendungen": { + "account_number": "4130", + "account_type": "Expense Account" + }, + "Aufwendungen für Altersvorsorge": { + "account_number": "4165", + "account_type": "Expense Account" + }, + "Vermögenswirksame Leistungen": { + "account_number": "4170", + "account_type": "Expense Account" + }, + "Aushilfslöhne": { + "account_number": "4190", + "account_type": "Expense Account" } - }, - "Kfz-Kosten": { - "is_group": 1, - "Kfz-Steuer": { - "account_number": "4510", - "account_type": "Expense Account" - }, - "Kfz-Versicherungen": { - "account_number": "4520", - "account_type": "Expense Account" - }, - "laufende Kfz-Betriebskosten": { - "account_number": "4530", - "account_type": "Expense Account" - }, - "Kfz-Reparaturen": { - "account_number": "4540", - "account_type": "Expense Account" - }, - "Fremdfahrzeuge": { - "account_number": "4570", - "account_type": "Expense Account" - }, - "sonstige Kfz-Kosten": { - "account_number": "4580", - "account_type": "Expense Account" - } - }, - "Personalkosten": { - "is_group": 1, - "Geh\u00e4lter": { - "account_number": "4120", - "account_type": "Expense Account" - }, - "gesetzliche soziale Aufwendungen": { - "account_number": "4130", - "account_type": "Expense Account" - }, - "Aufwendungen f\u00fcr Altersvorsorge": { - "account_number": "4165", - "account_type": "Expense Account" - }, - "Verm\u00f6genswirksame Leistungen": { - "account_number": "4170", - "account_type": "Expense Account" - }, - "Aushilfsl\u00f6hne": { - "account_number": "4190", - "account_type": "Expense Account" - } - }, - "Raumkosten": { - "is_group": 1, - "Miete und Nebenkosten": { - "account_number": "4210", - "account_type": "Expense Account" - }, - "Gas, Wasser, Strom (Verwaltung, Vertrieb)": { - "account_number": "4240", - "account_type": "Expense Account" - }, - "Reinigung": { - "account_number": "4250", - "account_type": "Expense Account" - } - }, - "Reparatur/Instandhaltung": { - "is_group": 1, - "Reparatur u. Instandh. von Anlagen/Maschinen u. Betriebs- u. Gesch\u00e4ftsausst.": { - "account_number": "4805", - "account_type": "Expense Account" - } - }, - "Versicherungsbeitr\u00e4ge": { - "is_group": 1, - "Versicherungen": { - "account_number": "4360", - "account_type": "Expense Account" - }, - "Beitr\u00e4ge": { - "account_number": "4380", - "account_type": "Expense Account" - }, - "sonstige Ausgaben": { - "account_number": "4390", - "account_type": "Expense Account" - }, - "steuerlich abzugsf\u00e4hige Versp\u00e4tungszuschl\u00e4ge und Zwangsgelder": { - "account_number": "4396", - "account_type": "Expense Account" - } - }, - "Werbe-/Reisekosten": { - "is_group": 1, - "Werbekosten": { - "account_number": "4610", - "account_type": "Expense Account" - }, - "Aufmerksamkeiten": { - "account_number": "4653", - "account_type": "Expense Account" - }, - "nicht abzugsf\u00e4hige Betriebsausg. aus Werbe-, Repr\u00e4s.- u. Reisekosten": { - "account_number": "4665", - "account_type": "Expense Account" - }, - "Reisekosten Unternehmer": { - "account_number": "4670", - "account_type": "Expense Account" - } - }, - "verschiedene Kosten": { - "is_group": 1, - "Porto": { - "account_number": "4910", - "account_type": "Expense Account" - }, - "Telekom": { - "account_number": "4920", - "account_type": "Expense Account" - }, - "Mobilfunk D2": { - "account_number": "4921", - "account_type": "Expense Account" - }, - "Internet": { - "account_number": "4922", - "account_type": "Expense Account" - }, - "B\u00fcrobedarf": { - "account_number": "4930", - "account_type": "Expense Account" - }, - "Zeitschriften, B\u00fccher": { - "account_number": "4940", - "account_type": "Expense Account" - }, - "Fortbildungskosten": { - "account_number": "4945", - "account_type": "Expense Account" - }, - "Buchf\u00fchrungskosten": { - "account_number": "4955", - "account_type": "Expense Account" - }, - "Abschlu\u00df- u. Pr\u00fcfungskosten": { - "account_number": "4957", - "account_type": "Expense Account" - }, - "Nebenkosten des Geldverkehrs": { - "account_number": "4970", - "account_type": "Expense Account" - }, - "Werkzeuge und Kleinger\u00e4te": { - "account_number": "4985", - "account_type": "Expense Account" - } - }, - "Zinsaufwendungen": { - "is_group": 1, - "Zinsaufwendungen f\u00fcr kurzfristige Verbindlichkeiten": { - "account_number": "2110", - "account_type": "Expense Account" - }, - "Zinsaufwendungen f\u00fcr KFZ Finanzierung": { - "account_number": "2121", - "account_type": "Expense Account" - } - } - }, - "Anfangsbestand 9": { - "is_group": 1, - "root_type": "Equity", - "Saldenvortragskonten": { - "is_group": 1, - "Saldenvortrag Sachkonten": { - "account_number": "9000" - }, - "Saldenvortr\u00e4ge Debitoren": { - "account_number": "9008" - }, - "Saldenvortr\u00e4ge Kreditoren": { - "account_number": "9009" - } - } - }, - "Privatkonten 1": { - "is_group": 1, - "root_type": "Equity", - "Privatentnahmen/-einlagen": { - "is_group": 1, - "Privatentnahme allgemein": { - "account_number": "1800" - }, - "Privatsteuern": { - "account_number": "1810" - }, - "Sonderausgaben beschr\u00e4nkt abzugsf\u00e4hig": { - "account_number": "1820" - }, - "Sonderausgaben unbeschr\u00e4nkt abzugsf\u00e4hig": { - "account_number": "1830" - }, - "Au\u00dfergew\u00f6hnliche Belastungen": { - "account_number": "1850" - }, - "Privateinlagen": { - "account_number": "1890" - } - } - } - } + }, + "Raumkosten": { + "is_group": 1, + "Miete und Nebenkosten": { + "account_number": "4210", + "account_type": "Expense Account" + }, + "Gas, Wasser, Strom (Verwaltung, Vertrieb)": { + "account_number": "4240", + "account_type": "Expense Account" + }, + "Reinigung": { + "account_number": "4250", + "account_type": "Expense Account" + } + }, + "Reparatur/Instandhaltung": { + "is_group": 1, + "Reparaturen und Instandhaltungen von anderen Anlagen und Betriebs- und Geschäftsausstattung": { + "account_number": "4805", + "account_type": "Expense Account" + } + }, + "Versicherungsbeiträge": { + "is_group": 1, + "Versicherungen": { + "account_number": "4360", + "account_type": "Expense Account" + }, + "Beiträge": { + "account_number": "4380", + "account_type": "Expense Account" + }, + "sonstige Ausgaben": { + "account_number": "4390", + "account_type": "Expense Account" + }, + "steuerlich abzugsfähige Verspätungszuschläge und Zwangsgelder": { + "account_number": "4396", + "account_type": "Expense Account" + } + }, + "Werbe-/Reisekosten": { + "is_group": 1, + "Werbekosten": { + "account_number": "4610", + "account_type": "Expense Account" + }, + "Aufmerksamkeiten": { + "account_number": "4653", + "account_type": "Expense Account" + }, + "nicht abzugsfähige Betriebsausg. aus Werbe-, Repräs.- u. Reisekosten": { + "account_number": "4665", + "account_type": "Expense Account" + }, + "Reisekosten Unternehmer": { + "account_number": "4670", + "account_type": "Expense Account" + } + }, + "verschiedene Kosten": { + "is_group": 1, + "Porto": { + "account_number": "4910", + "account_type": "Expense Account" + }, + "Telekom": { + "account_number": "4920", + "account_type": "Expense Account" + }, + "Mobilfunk D2": { + "account_number": "4921", + "account_type": "Expense Account" + }, + "Internet": { + "account_number": "4922", + "account_type": "Expense Account" + }, + "Bürobedarf": { + "account_number": "4930", + "account_type": "Expense Account" + }, + "Zeitschriften, Bücher": { + "account_number": "4940", + "account_type": "Expense Account" + }, + "Fortbildungskosten": { + "account_number": "4945", + "account_type": "Expense Account" + }, + "Buchführungskosten": { + "account_number": "4955", + "account_type": "Expense Account" + }, + "Abschluß- u. Prüfungskosten": { + "account_number": "4957", + "account_type": "Expense Account" + }, + "Nebenkosten des Geldverkehrs": { + "account_number": "4970", + "account_type": "Expense Account" + }, + "Werkzeuge und Kleingeräte": { + "account_number": "4985", + "account_type": "Expense Account" + } + }, + "Zinsaufwendungen": { + "is_group": 1, + "Zinsaufwendungen für kurzfristige Verbindlichkeiten": { + "account_number": "2110", + "account_type": "Expense Account" + }, + "Zinsaufwendungen für KFZ Finanzierung": { + "account_number": "2121", + "account_type": "Expense Account" + } + } + }, + "Anfangsbestand 9": { + "is_group": 1, + "root_type": "Equity", + "Saldenvortragskonten": { + "is_group": 1, + "Saldenvortrag Sachkonten": { + "account_number": "9000" + }, + "Saldenvorträge Debitoren": { + "account_number": "9008" + }, + "Saldenvorträge Kreditoren": { + "account_number": "9009" + } + } + }, + "Privatkonten 1": { + "is_group": 1, + "root_type": "Equity", + "Privatentnahmen/-einlagen": { + "is_group": 1, + "Privatentnahme allgemein": { + "account_number": "1800" + }, + "Privatsteuern": { + "account_number": "1810" + }, + "Sonderausgaben beschränkt abzugsfähig": { + "account_number": "1820" + }, + "Sonderausgaben unbeschränkt abzugsfähig": { + "account_number": "1830" + }, + "Außergewöhnliche Belastungen": { + "account_number": "1850" + }, + "Privateinlagen": { + "account_number": "1890" + } + } + } + } } From b0ed3c8aedc3ecf43d957b9a894491f180b77144 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 11 Feb 2023 12:27:06 +0530 Subject: [PATCH 150/355] fix: Ignore mandatory fields while creating tax templates for new companies (#34005) fix: Ignore mandatory fields while creating tax templates for new companies (#34005) (cherry picked from commit 0efdc6c13a4748c790596a276a5eb2bb67b7a87e) Co-authored-by: Deepesh Garg --- erpnext/setup/setup_wizard/operations/taxes_setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/setup/setup_wizard/operations/taxes_setup.py b/erpnext/setup/setup_wizard/operations/taxes_setup.py index 2f77dd6ae567..49ba78c63a42 100644 --- a/erpnext/setup/setup_wizard/operations/taxes_setup.py +++ b/erpnext/setup/setup_wizard/operations/taxes_setup.py @@ -158,6 +158,7 @@ def make_taxes_and_charges_template(company_name, doctype, template): # Ingone validations to make doctypes faster doc.flags.ignore_links = True doc.flags.ignore_validate = True + doc.flags.ignore_mandatory = True doc.insert(ignore_permissions=True) return doc From 5270fbe01a3e83a432610db94f4bc49359eb8821 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 11 Feb 2023 14:54:22 +0530 Subject: [PATCH 151/355] fix: set per_billed based on hours when amounts are zero (#33984) fix: set per_billed based on hours when amounts are zero (#33984) * fix: set per_billed based on hours when amounts are zero * test: calculate_percentage_billed (cherry picked from commit e4953df4a3b136b6a06b74b114a880d5d79eb103) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- .../doctype/timesheet/test_timesheet.py | 31 +++++++++++++++++++ .../projects/doctype/timesheet/timesheet.py | 2 ++ 2 files changed, 33 insertions(+) diff --git a/erpnext/projects/doctype/timesheet/test_timesheet.py b/erpnext/projects/doctype/timesheet/test_timesheet.py index e098c3e3c45e..828a55e7bc13 100644 --- a/erpnext/projects/doctype/timesheet/test_timesheet.py +++ b/erpnext/projects/doctype/timesheet/test_timesheet.py @@ -161,6 +161,37 @@ def test_to_time(self): to_time = timesheet.time_logs[0].to_time self.assertEqual(to_time, add_to_date(from_time, hours=2, as_datetime=True)) + def test_per_billed_hours(self): + """If amounts are 0, per_billed should be calculated based on hours.""" + ts = frappe.new_doc("Timesheet") + ts.total_billable_amount = 0 + ts.total_billed_amount = 0 + ts.total_billable_hours = 2 + + ts.total_billed_hours = 0.5 + ts.calculate_percentage_billed() + self.assertEqual(ts.per_billed, 25) + + ts.total_billed_hours = 2 + ts.calculate_percentage_billed() + self.assertEqual(ts.per_billed, 100) + + def test_per_billed_amount(self): + """If amounts are > 0, per_billed should be calculated based on amounts, regardless of hours.""" + ts = frappe.new_doc("Timesheet") + ts.total_billable_hours = 2 + ts.total_billed_hours = 1 + ts.total_billable_amount = 200 + ts.total_billed_amount = 50 + ts.calculate_percentage_billed() + self.assertEqual(ts.per_billed, 25) + + ts.total_billed_hours = 3 + ts.total_billable_amount = 200 + ts.total_billed_amount = 200 + ts.calculate_percentage_billed() + self.assertEqual(ts.per_billed, 100) + def make_timesheet( employee, diff --git a/erpnext/projects/doctype/timesheet/timesheet.py b/erpnext/projects/doctype/timesheet/timesheet.py index b9bb37a05cf0..4a27807e4ec9 100644 --- a/erpnext/projects/doctype/timesheet/timesheet.py +++ b/erpnext/projects/doctype/timesheet/timesheet.py @@ -58,6 +58,8 @@ def calculate_percentage_billed(self): self.per_billed = 0 if self.total_billed_amount > 0 and self.total_billable_amount > 0: self.per_billed = (self.total_billed_amount * 100) / self.total_billable_amount + elif self.total_billed_hours > 0 and self.total_billable_hours > 0: + self.per_billed = (self.total_billed_hours * 100) / self.total_billable_hours def update_billing_hours(self, args): if args.is_billable: From dd31bd5254ad344064f4df30d967462a9c85a218 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 11 Feb 2023 16:22:26 +0530 Subject: [PATCH 152/355] refactor: install fixtures (#33964) refactor: install fixtures (#33964) * refactor: install fixtures * style: disable semgrep for install_defaults signature (cherry picked from commit 201573ab9af145d20f0d57cac00b8ec308fc039b) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- .../setup_wizard/operations/install_fixtures.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/erpnext/setup/setup_wizard/operations/install_fixtures.py b/erpnext/setup/setup_wizard/operations/install_fixtures.py index 4d9b871e5e7b..1f8c0d6a1ca1 100644 --- a/erpnext/setup/setup_wizard/operations/install_fixtures.py +++ b/erpnext/setup/setup_wizard/operations/install_fixtures.py @@ -335,16 +335,11 @@ def install(country=None): make_default_records() make_records(records) set_up_address_templates(default_country=country) - set_more_defaults() - update_global_search_doctypes() - - -def set_more_defaults(): - # Do more setup stuff that can be done here with no dependencies update_selling_defaults() update_buying_defaults() add_uom_data() update_item_variant_settings() + update_global_search_doctypes() def update_selling_defaults(): @@ -381,7 +376,7 @@ def add_uom_data(): ) for d in uoms: if not frappe.db.exists("UOM", _(d.get("uom_name"))): - uom_doc = frappe.get_doc( + frappe.get_doc( { "doctype": "UOM", "uom_name": _(d.get("uom_name")), @@ -404,7 +399,7 @@ def add_uom_data(): if not frappe.db.exists( "UOM Conversion Factor", {"from_uom": _(d.get("from_uom")), "to_uom": _(d.get("to_uom"))} ): - uom_conversion = frappe.get_doc( + frappe.get_doc( { "doctype": "UOM Conversion Factor", "category": _(d.get("category")), @@ -412,7 +407,7 @@ def add_uom_data(): "to_uom": _(d.get("to_uom")), "value": d.get("value"), } - ).insert(ignore_permissions=True) + ).db_insert() def add_market_segments(): @@ -468,7 +463,7 @@ def install_company(args): make_records(records) -def install_defaults(args=None): +def install_defaults(args=None): # nosemgrep records = [ # Price Lists { @@ -493,7 +488,7 @@ def install_defaults(args=None): # enable default currency frappe.db.set_value("Currency", args.get("currency"), "enabled", 1) - frappe.db.set_value("Stock Settings", None, "email_footer_address", args.get("company_name")) + frappe.db.set_single_value("Stock Settings", "email_footer_address", args.get("company_name")) set_global_defaults(args) update_stock_settings() From 49fd712966e270f094ff00089b46f194b061e4d6 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 12 Feb 2023 09:02:40 +0530 Subject: [PATCH 153/355] fix: add payment hook to point of sale JS (#33988) fix: add payment hook to point of sale JS (#33988) (cherry picked from commit a0eb5e55359e47baa7391859f79a9ba3ef339cb9) Co-authored-by: Richard Case <110036763+casesolved-co-uk@users.noreply.github.com> --- erpnext/selling/page/point_of_sale/pos_payment.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/erpnext/selling/page/point_of_sale/pos_payment.js b/erpnext/selling/page/point_of_sale/pos_payment.js index 0a356b9a6fba..89ce61ab1680 100644 --- a/erpnext/selling/page/point_of_sale/pos_payment.js +++ b/erpnext/selling/page/point_of_sale/pos_payment.js @@ -322,6 +322,11 @@ erpnext.PointOfSale.Payment = class { this.focus_on_default_mop(); } + after_render() { + const frm = this.events.get_frm(); + frm.script_manager.trigger("after_payment_render", frm.doc.doctype, frm.doc.docname); + } + edit_cart() { this.events.toggle_other_sections(false); this.toggle_component(false); @@ -332,6 +337,7 @@ erpnext.PointOfSale.Payment = class { this.toggle_component(true); this.render_payment_section(); + this.after_render(); } toggle_remarks_control() { From 1d0e71bfe585c41bfcdc2ed29ade0887b466e10b Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 12 Feb 2023 13:35:54 +0530 Subject: [PATCH 154/355] fix(ecommerce): throw invalid doctype error in shop by category (#33901) fix(ecommerce): throw invalid doctype error in shop by category (#33901) Co-authored-by: Deepesh Garg (cherry picked from commit 0df28c71743e2e91924e2c5062778e2e2e680666) Co-authored-by: Sabu Siyad --- erpnext/www/shop-by-category/index.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/erpnext/www/shop-by-category/index.py b/erpnext/www/shop-by-category/index.py index 8a92418d25ed..219747c9f8a5 100644 --- a/erpnext/www/shop-by-category/index.py +++ b/erpnext/www/shop-by-category/index.py @@ -51,21 +51,31 @@ def get_tabs(categories): return tab_values -def get_category_records(categories): +def get_category_records(categories: list): categorical_data = {} - for category in categories: - if category == "item_group": + + for c in categories: + if c == "item_group": categorical_data["item_group"] = frappe.db.get_all( "Item Group", filters={"parent_item_group": "All Item Groups", "show_in_website": 1}, fields=["name", "parent_item_group", "is_group", "image", "route"], ) - else: - doctype = frappe.unscrub(category) - fields = ["name"] - if frappe.get_meta(doctype, cached=True).get_field("image"): + + continue + + doctype = frappe.unscrub(c) + fields = ["name"] + + try: + meta = frappe.get_meta(doctype, cached=True) + if meta.get_field("image"): fields += ["image"] - categorical_data[category] = frappe.db.get_all(doctype, fields=fields) + data = frappe.db.get_all(doctype, fields=fields) + categorical_data[c] = data + except BaseException: + frappe.throw(_("DocType {} not found").format(doctype)) + continue return categorical_data From 699e93e17f61b9530c0670980de52b0f54473aec Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 10:19:19 +0530 Subject: [PATCH 155/355] fix: Ignore Payment Ledger Entry on dunning cancel (backport #34025) (#34028) fix: Ignore Payment Ledger Entry on dunning cancel (#34025) * fix: Ignore Payment Ledger Entry on dunning cancel * chore: fix translation issue (cherry picked from commit 48bb2c942bfca2ad19d0b32d663f237245480696) Co-authored-by: Deepesh Garg --- erpnext/accounts/doctype/dunning/dunning.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/dunning/dunning.py b/erpnext/accounts/doctype/dunning/dunning.py index 9874d66fa553..7347865563a1 100644 --- a/erpnext/accounts/doctype/dunning/dunning.py +++ b/erpnext/accounts/doctype/dunning/dunning.py @@ -40,7 +40,7 @@ def on_submit(self): 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): From 4d0e27ed2b219e15ad8738d41fea57c4e1a6430c Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 11:08:55 +0530 Subject: [PATCH 156/355] feat: Setting to allow Sales Order creation against expired quotation (#33952) feat: Setting to allow Sales Order creation against expired quotation (#33952) * feat: Setting to allow Sales Order creation against expired quotation * chore: linting issues (cherry picked from commit 148703bfc2fa9248c22d69ef92d14697a91a9301) Co-authored-by: Deepesh Garg --- erpnext/selling/doctype/quotation/quotation.js | 14 +++++++++----- erpnext/selling/doctype/quotation/quotation.py | 11 +++++++++++ .../selling/doctype/quotation/test_quotation.py | 10 ++++++++++ .../doctype/selling_settings/selling_settings.json | 9 ++++++++- erpnext/startup/boot.py | 6 ++++++ 5 files changed, 44 insertions(+), 6 deletions(-) diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js index 6b42e4daead2..b348bd35754f 100644 --- a/erpnext/selling/doctype/quotation/quotation.js +++ b/erpnext/selling/doctype/quotation/quotation.js @@ -85,11 +85,15 @@ erpnext.selling.QuotationController = class QuotationController extends erpnext. } 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 6836d56647f6..063813b2dc70 100644 --- a/erpnext/selling/doctype/quotation/quotation.py +++ b/erpnext/selling/doctype/quotation/quotation.py @@ -195,6 +195,17 @@ def get_list_context(context=None): @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 5aaba4fa4356..cdf5f5d00c58 100644 --- a/erpnext/selling/doctype/quotation/test_quotation.py +++ b/erpnext/selling/doctype/quotation/test_quotation.py @@ -144,11 +144,21 @@ def test_valid_till_before_transaction_date(self): 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/selling_settings/selling_settings.json b/erpnext/selling/doctype/selling_settings/selling_settings.json index 2abb169b8a06..6ea66a02378c 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/startup/boot.py b/erpnext/startup/boot.py index bb120eaa6b31..62936fcfb896 100644 --- a/erpnext/startup/boot.py +++ b/erpnext/startup/boot.py @@ -25,6 +25,12 @@ def boot_session(bootinfo): 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] From cbafc51e753b03ae9a56f08046e1c598f41877ab Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 13:29:18 +0530 Subject: [PATCH 157/355] fix: unwanted difference amount calculation on cr note and invoice with same currency (#34020) fix: unwanted difference amount calculation on cr note and invoice with same currency (#34020) * fix: incorrect difference amount while reconiling cr/dr notes * fix(test): catch incorrect difference amount calculation Fixed issues where difference amount was calculated for Cr Notes and Invoices of the same currency. --------- Co-authored-by: Deepesh Garg (cherry picked from commit e5a2b15fba27bb35496bdf6cc3eb4d67b7bcf369) Co-authored-by: ruthra kumar --- .../payment_reconciliation.py | 15 +++++++++++++-- .../test_payment_reconciliation.py | 10 ++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py index 154fdc039d40..675a3287fa41 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py @@ -234,7 +234,7 @@ def get_difference_amount(self, payment_entry, invoice, allocated_amount): 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 @@ def allocate_entries(self, args): 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") @@ -407,13 +410,21 @@ def validate_entries(self): 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 00e3934f10c0..f9dda0593b0d 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 @@ def test_cr_note_against_invoice(self): 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 @@ def test_cr_note_partial_against_invoice(self): 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 From 1540aea21df8029103ac31119054d4191f5b12f5 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 13:29:41 +0530 Subject: [PATCH 158/355] refactor: filter only immediate upcoming payment term for each SO (#33923) refactor: filter only immediate upcoming payment term for each SO (#33923) * fix: ignore closed or 'on hold' orders * refactor: filter immediate upcoming term --------- Co-authored-by: Deepesh Garg (cherry picked from commit 192a3395a5ca5804ed48582b6c7137ae2138880a) Co-authored-by: ruthra kumar --- .../payment_terms_status_for_sales_order.js | 5 +++++ .../payment_terms_status_for_sales_order.py | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) 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 991ac719cdc8..990d736baa4e 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 @@ function get_filters() { 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 8bf56865a7d6..3682c5fd62e1 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 @@ def get_so_with_invoices(filters): ) .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 @@ def filter_on_calculated_status(filters, sales_orders): 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 @@ def execute(filters=None): 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 From c71d03555f41fe01c6eed9c3cf0184b3e9d58dd5 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Sun, 12 Feb 2023 14:06:40 +0530 Subject: [PATCH 159/355] fix: IntegrityError while cancelling journals against cr note (cherry picked from commit b9a7ff7c3df77f008afa9454e3386368767bf5cd) --- erpnext/accounts/utils.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index 31885ac07b3e..38aa8056e9cc 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -1512,9 +1512,12 @@ def update_voucher_outstanding(voucher_type, voucher_no, account, party_type, pa 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) From 087333abcbe0bca99d49bd2fe88766a8e751e7be Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 16:30:03 +0530 Subject: [PATCH 160/355] fix: Concurrency issues in Sales and Purchase returns (#34019) fix: Concurrency issues in Sales and Purchase returns (#34019) (cherry picked from commit a67284e96dabe71b76a373b5f1f3142dccf3952b) Co-authored-by: Deepesh Garg --- erpnext/controllers/sales_and_purchase_return.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py index 8bd09982bf42..935796c7a712 100644 --- a/erpnext/controllers/sales_and_purchase_return.py +++ b/erpnext/controllers/sales_and_purchase_return.py @@ -252,6 +252,7 @@ def get_already_returned_items(doc): 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 ), From 47cc8ab6c6e6ad3cf13ba750e9410696be827c23 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Mon, 13 Feb 2023 17:22:54 +0530 Subject: [PATCH 161/355] fix: opening_accumulated_depreciation and precision in charts --- erpnext/assets/doctype/asset/asset.js | 39 ++++++++++--------- erpnext/assets/doctype/asset/asset.py | 8 ++-- .../fixed_asset_register.py | 10 ++--- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js index 276cc925208d..bffe19954579 100644 --- a/erpnext/assets/doctype/asset/asset.js +++ b/erpnext/assets/doctype/asset/asset.js @@ -210,52 +210,53 @@ frappe.ui.form.on('Asset', { 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.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'))); + } + $.each(frm.doc.schedules || [], function(i, v) { - x_intervals.push(v.schedule_date); - var asset_value = flt(frm.doc.gross_purchase_amount) - flt(v.accumulated_depreciation_amount); + 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) { - 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) + 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); }); } 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 cd9f3b420d1f..d3eb958fa6d7 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -693,14 +693,16 @@ def get_status(self): 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 + 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: 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 5bfd4840d73d..0ab3e16e424e 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 @@ def get_data(filters): ] 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", ) @@ -194,7 +190,7 @@ def get_depreciation_amount_of_asset(asset, depreciation_amount_map, filters): 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): From a220dc0c9c694a9213189b96be8eb9431457280c Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Mon, 13 Feb 2023 17:28:46 +0530 Subject: [PATCH 162/355] chore: break look if je processed --- erpnext/accounts/doctype/journal_entry/journal_entry.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index b9507b73e292..e52fd6225fbe 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -336,6 +336,8 @@ def unlink_asset_reference(self): finance_books.db_update() asset.set_status() + + break else: depr_value = d.debit or d.credit From c7c61239a3b95439f8de2342f9e080fed4fec592 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 14 Feb 2023 08:59:03 +0530 Subject: [PATCH 163/355] fix: Amount validation in Payment Request against Purchase Order (#34042) fix: Amount validation in Payment Request against Purchase Order (#34042) (cherry picked from commit ce748cec3a6e2b289878bf5d57ac6db3cb851618) Co-authored-by: Deepesh Garg --- .../payment_request/payment_request.py | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index 68c2a32715c1..86c373cf93dc 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -45,21 +45,20 @@ def validate_reference_document(self): 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) From 6fe7600844dc6ac9f4e83eaa9e8d414350591d02 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 14 Feb 2023 08:59:25 +0530 Subject: [PATCH 164/355] fix: should never get cutomer price on purchase document (#34002) fix: should never get cutomer price on purchase document (#34002) * fix: never get cutomer price on purchase document chores: syntax chore: typo in stock_entry get_uom_details (#33998) fix: typo in stock_entry get_uom_details chores: syntax * feat: add test for get_item_detail price list oriented * feat: add test for get_item_detail price price oriented * feat: add test for get_item_detail price price oriented * chore: clean test code (cherry picked from commit 231fe4156f9686eb7dd3b67e9fe0321920655689) Co-authored-by: HENRY Florian --- .../doctype/item_price/test_records.json | 14 +++++++ .../doctype/price_list/test_records.json | 16 ++++++++ erpnext/stock/get_item_details.py | 7 ++++ erpnext/stock/tests/test_get_item_details.py | 40 +++++++++++++++++++ 4 files changed, 77 insertions(+) create mode 100644 erpnext/stock/tests/test_get_item_details.py diff --git a/erpnext/stock/doctype/item_price/test_records.json b/erpnext/stock/doctype/item_price/test_records.json index 0a3d7e81985f..afe5ad65b756 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/price_list/test_records.json b/erpnext/stock/doctype/price_list/test_records.json index 7ca949c40263..e02a7adbd8ba 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/get_item_details.py b/erpnext/stock/get_item_details.py index 5af144110f0c..b53f429edf21 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -88,8 +88,15 @@ def get_item_details(args, doc=None, for_validate=False, overwrite_warehouse=Tru 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/tests/test_get_item_details.py b/erpnext/stock/tests/test_get_item_details.py new file mode 100644 index 000000000000..b53e29e9e8e1 --- /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) From d117de7813ea8e773f3b8d5262415ac18fda870f Mon Sep 17 00:00:00 2001 From: Raffael Meyer <14891507+barredterra@users.noreply.github.com> Date: Tue, 14 Feb 2023 04:59:27 +0100 Subject: [PATCH 165/355] feat: translate fixtures during runtime, not installation (#33996) feat: install untranslated fixtures from files Co-authored-by: Deepesh Garg (cherry picked from commit 770369e5c1dc43b26f41e118432d9be923ba61ef) --- .../crm/doctype/lead_source/lead_source.json | 7 +- .../crm/doctype/sales_stage/sales_stage.json | 7 +- .../v11_0/update_sales_partner_type.py | 7 +- .../doctype/industry_type/industry_type.json | 167 ++++++------------ .../sales_partner_type.json | 123 ++++--------- .../doctype/designation/designation.json | 5 +- .../setup/setup_wizard/data/designation.txt | 31 ++++ .../setup/setup_wizard/data/industry_type.py | 57 ------ .../setup/setup_wizard/data/industry_type.txt | 51 ++++++ .../setup/setup_wizard/data/lead_source.txt | 10 ++ .../setup_wizard/data/sales_partner_type.txt | 7 + .../setup/setup_wizard/data/sales_stage.txt | 8 + .../operations/install_fixtures.py | 81 +++------ 13 files changed, 240 insertions(+), 321 deletions(-) create mode 100644 erpnext/setup/setup_wizard/data/designation.txt delete mode 100644 erpnext/setup/setup_wizard/data/industry_type.py create mode 100644 erpnext/setup/setup_wizard/data/industry_type.txt create mode 100644 erpnext/setup/setup_wizard/data/lead_source.txt create mode 100644 erpnext/setup/setup_wizard/data/sales_partner_type.txt create mode 100644 erpnext/setup/setup_wizard/data/sales_stage.txt diff --git a/erpnext/crm/doctype/lead_source/lead_source.json b/erpnext/crm/doctype/lead_source/lead_source.json index 723c6d993d7f..c3cedcc7a634 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 77aa559b771c..caf8ff5b36b4 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/patches/v11_0/update_sales_partner_type.py b/erpnext/patches/v11_0/update_sales_partner_type.py index 2d37fd69b192..72fd424b2452 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/selling/doctype/industry_type/industry_type.json b/erpnext/selling/doctype/industry_type/industry_type.json index 6c49f0f6ddab..3c8ab8e47ae1 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/sales_partner_type/sales_partner_type.json b/erpnext/selling/doctype/sales_partner_type/sales_partner_type.json index e7dd0d84a0ad..a9b500a625f6 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/setup/doctype/designation/designation.json b/erpnext/setup/doctype/designation/designation.json index 2cbbb04ed912..a5b2ac9128ac 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/setup_wizard/data/designation.txt b/erpnext/setup/setup_wizard/data/designation.txt new file mode 100644 index 000000000000..4c6d7bdea8a0 --- /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 0bc3f32eb09b..000000000000 --- 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 000000000000..eadc689e3121 --- /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 000000000000..00ca1808bb51 --- /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 000000000000..68e9b9ac732c --- /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 000000000000..2808ce79855e --- /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 1f8c0d6a1ca1..6bc17718ae01 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 @@ def install(country=None): # 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 @@ def install(country=None): "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 @@ def install(country=None): {"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 @@ def add_uom_data(): 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 @@ def create_bank_account(args): 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( From 47d17f413639ef3601cc6c562cbbe3c2634ad837 Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Mon, 13 Feb 2023 23:34:20 +0100 Subject: [PATCH 166/355] fix: BOM import failed as importer use same label field for Raw MaterialsItem table and Scrap Item table (cherry picked from commit 86be259341976a909b5d72a1537f1f63f477a7b8) --- erpnext/manufacturing/doctype/bom/bom.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/manufacturing/doctype/bom/bom.json b/erpnext/manufacturing/doctype/bom/bom.json index c2b331fcfd1f..db699b94d8fa 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", From 26c9782960f342f4619022cc2cd73cf8a6b72519 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 14 Feb 2023 10:38:44 +0000 Subject: [PATCH 167/355] chore(release): Bumped to Version 14.16.0 # [14.16.0](https://github.com/frappe/erpnext/compare/v14.15.1...v14.16.0) (2023-02-14) ### Bug Fixes * `amount` in `Material Request` ([f1dd923](https://github.com/frappe/erpnext/commit/f1dd923a501989d0718a7ddc84b1f10397e77711)) * `get_picked_items_details` ([7afbd92](https://github.com/frappe/erpnext/commit/7afbd9201d328fa13170453bd120c6c04a7cec04)) * `pymysql.err.ProgrammingError` ([aa3dd33](https://github.com/frappe/erpnext/commit/aa3dd33f5626b8cbae54ba4f9ca97e1acefc9779)) * Add missing 1 required positional argument: 'bill_date' ([ced9274](https://github.com/frappe/erpnext/commit/ced9274d1b394a3be8c83f47db1b5d2bace36ad9)) * add payment hook to point of sale JS ([#33988](https://github.com/frappe/erpnext/issues/33988)) ([49fd712](https://github.com/frappe/erpnext/commit/49fd712966e270f094ff00089b46f194b061e4d6)) * allow PI cancel if linked asset is cancelled ([c98b2b5](https://github.com/frappe/erpnext/commit/c98b2b59181546f246912fcd8c649ae773b68fab)) * Amount for debit and credit notes with 0 qty line items ([#33902](https://github.com/frappe/erpnext/issues/33902)) ([87a8c17](https://github.com/frappe/erpnext/commit/87a8c17314c0268109d1a60d8a90c470e2548c3f)) * Amount validation in Payment Request against Purchase Order ([#34042](https://github.com/frappe/erpnext/issues/34042)) ([c7c6123](https://github.com/frappe/erpnext/commit/c7c61239a3b95439f8de2342f9e080fed4fec592)) * BOM import failed as importer use same label field for Raw MaterialsItem table and Scrap Item table ([47d17f4](https://github.com/frappe/erpnext/commit/47d17f413639ef3601cc6c562cbbe3c2634ad837)) * Concurrency issues in Sales and Purchase returns ([#34019](https://github.com/frappe/erpnext/issues/34019)) ([087333a](https://github.com/frappe/erpnext/commit/087333abcbe0bca99d49bd2fe88766a8e751e7be)) * consider `stock_qty` if `picked_qty` is zero ([df72e4a](https://github.com/frappe/erpnext/commit/df72e4a2217337d3815808a7bf7fba75eab643ea)) * consider existing pick list ([466a791](https://github.com/frappe/erpnext/commit/466a791f68643cae1d2f1323039e786aace9be77)) * currency formatting in item-wise sales history ([#33903](https://github.com/frappe/erpnext/issues/33903)) ([8e2d7bb](https://github.com/frappe/erpnext/commit/8e2d7bb44a383ed4c7770a2e5c8de2930c0ffc10)) * default due_date was wrong calculated on template "_Test Payment Term Template 1" (last day of next month) ([c8c9c50](https://github.com/frappe/erpnext/commit/c8c9c509932c6ccdc8350d3b77d94244fa3a515b)) * **ecommerce:** throw invalid doctype error in shop by category ([#33901](https://github.com/frappe/erpnext/issues/33901)) ([1d0e71b](https://github.com/frappe/erpnext/commit/1d0e71bfe585c41bfcdc2ed29ade0887b466e10b)) * failed test, convert date time to string ([7228a49](https://github.com/frappe/erpnext/commit/7228a492ef2390b2acb08426b363633690098ecf)) * german chart of accounts "SKR03" ([#33909](https://github.com/frappe/erpnext/issues/33909)) ([02c4c55](https://github.com/frappe/erpnext/commit/02c4c55adc87aa7423fcf2fff05568eccf135cd2)) * Ignore mandatory fields while creating tax templates for new companies ([#34005](https://github.com/frappe/erpnext/issues/34005)) ([b0ed3c8](https://github.com/frappe/erpnext/commit/b0ed3c8aedc3ecf43d957b9a894491f180b77144)) * Ignore Payment Ledger Entry on dunning cancel (backport [#34025](https://github.com/frappe/erpnext/issues/34025)) ([#34028](https://github.com/frappe/erpnext/issues/34028)) ([699e93e](https://github.com/frappe/erpnext/commit/699e93e17f61b9530c0670980de52b0f54473aec)) * incorrect actual qty in Bin ([01ff6a1](https://github.com/frappe/erpnext/commit/01ff6a1f1995e619de90ba861c7b6dd0bf79af94)) * IntegrityError while cancelling journals against cr note ([c71d035](https://github.com/frappe/erpnext/commit/c71d03555f41fe01c6eed9c3cf0184b3e9d58dd5)) * list view for Terms and Conditions ([#33925](https://github.com/frappe/erpnext/issues/33925)) ([bb8e232](https://github.com/frappe/erpnext/commit/bb8e232aea98db7158c64e8f5a0ef9bdc57293a9)) * negative stock error ([e0cd6c2](https://github.com/frappe/erpnext/commit/e0cd6c20a3a317f567778e22c8f8b0df19c1891c)) * set per_billed based on hours when amounts are zero ([#33984](https://github.com/frappe/erpnext/issues/33984)) ([5270fbe](https://github.com/frappe/erpnext/commit/5270fbe01a3e83a432610db94f4bc49359eb8821)) * should never get cutomer price on purchase document ([#34002](https://github.com/frappe/erpnext/issues/34002)) ([6fe7600](https://github.com/frappe/erpnext/commit/6fe7600844dc6ac9f4e83eaa9e8d414350591d02)), closes [#33998](https://github.com/frappe/erpnext/issues/33998) * stock entry from item dashboard (stock levels) ([04a474d](https://github.com/frappe/erpnext/commit/04a474d0a12fa51211b5878a19ada7f8e7848475)) * **test:** `test_pick_list_for_items_with_multiple_UOM()` ([7124c0c](https://github.com/frappe/erpnext/commit/7124c0ca30f26c715766b6d1363a4f041e082fac)) * unwanted difference amount calculation on cr note and invoice with same currency ([#34020](https://github.com/frappe/erpnext/issues/34020)) ([cbafc51](https://github.com/frappe/erpnext/commit/cbafc51e753b03ae9a56f08046e1c598f41877ab)) ### Features * Add filters in Loan Interest Report ([#33907](https://github.com/frappe/erpnext/issues/33907)) ([52bfb66](https://github.com/frappe/erpnext/commit/52bfb667294b39bcd621b536459f0d2b0e43a824)) * add incoterm named place to RFQ ([68a1615](https://github.com/frappe/erpnext/commit/68a1615eae49a0d237bb358d650b3c8e80806da2)) * mandatory and mandatory depends on in inventory dimension ([3aca84c](https://github.com/frappe/erpnext/commit/3aca84c43f4e843802f94ee1e44e57090385c50b)) * Setting to allow Sales Order creation against expired quotation ([#33952](https://github.com/frappe/erpnext/issues/33952)) ([4d0e27e](https://github.com/frappe/erpnext/commit/4d0e27ed2b219e15ad8738d41fea57c4e1a6430c)) ### Performance Improvements * reduce memory usage by paging through records ([3ce8dc7](https://github.com/frappe/erpnext/commit/3ce8dc70cbdfab46789480b1e70f818bc6a328a3)) * reduce memory usage while migrating remarks ([c191a3f](https://github.com/frappe/erpnext/commit/c191a3f7c6ec48269f9b0b6c774297ced9db129a)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 2fca8ec32c73..ed5c841843dd 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.15.1" +__version__ = "14.16.0" def get_default_company(user=None): From 15898cc2ec5289ad3852cfe61ec64ff572c262d1 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Mon, 6 Feb 2023 13:36:25 +0530 Subject: [PATCH 168/355] fix: update `reserved_qty` when `Sales Order` marked as `Hold` (cherry picked from commit d76759e06690a19dc1a8b4fb201d509cee1b47e9) --- erpnext/stock/stock_balance.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/stock_balance.py b/erpnext/stock/stock_balance.py index 14cedd2e8a9f..439ed7a8e097 100644 --- a/erpnext/stock/stock_balance.py +++ b/erpnext/stock/stock_balance.py @@ -121,7 +121,7 @@ def get_reserved_qty(item_code, warehouse): 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 @@ def get_reserved_qty(item_code, warehouse): 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 From 1535c3d856a50c31ed1e2adaf022ca1a221aab9b Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Tue, 14 Feb 2023 17:54:51 +0530 Subject: [PATCH 169/355] fix: asset_depreciation_and_balances report doesn't reflect manual depr entries --- .../asset_depreciations_and_balances.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) 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 ad9b1ba58eb3..9cea37c4f802 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 @@ -135,6 +135,34 @@ def get_assets(filters): where a.docstatus=1 and a.company=%(company)s and a.purchase_date <= %(to_date)s and a.name = ds.parent and ifnull(ds.journal_entry, '') != '' 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 From dbd446681791bde00ca8ea4d3f71072f915e885b Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Tue, 14 Feb 2023 18:33:01 +0530 Subject: [PATCH 170/355] chore: add anand to asset's codeowner (cherry picked from commit d003370f61ef405bd69932005a1c02d35fe947ee) --- CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODEOWNERS b/CODEOWNERS index e0a0fb75f8e7..1657fdacc965 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 From a7b682e26b2e1c810891effc3e15606573fb1168 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 14 Feb 2023 19:03:07 +0530 Subject: [PATCH 171/355] feat: allow to make in transit transfer entry from material request (cherry picked from commit 5b6128848f0c9b9fb834a3f17eedf99cb2b4fd96) --- .../material_request/material_request.js | 45 +++++++++++++++++- .../material_request/material_request.py | 11 +++++ .../material_request/test_material_request.py | 47 +++++++++++++++++++ 3 files changed, 102 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js index 156e5917f23c..c1f1b0d13525 100644 --- a/erpnext/stock/doctype/material_request/material_request.js +++ b/erpnext/stock/doctype/material_request/material_request.js @@ -110,8 +110,11 @@ frappe.ui.form.on('Material Request', { 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 @@ frappe.ui.form.on('Material Request', { }); }, + 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 afad7511be67..1fe2ee5504c6 100644 --- a/erpnext/stock/doctype/material_request/material_request.py +++ b/erpnext/stock/doctype/material_request/material_request.py @@ -719,3 +719,14 @@ def create_pick_list(source_name, target_doc=None): 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 f0a94997fe83..a707c74c7db4 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 @@ def test_make_stock_entry(self): 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 @@ def test_customer_provided_parts_mr(self): 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") From f65e471a75566efbc0ea46bef94b19644ecd767c Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Wed, 15 Feb 2023 09:28:56 +0530 Subject: [PATCH 172/355] fix: linters issue --- .../stock/doctype/material_request/material_request.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js index c1f1b0d13525..b096b024f44c 100644 --- a/erpnext/stock/doctype/material_request/material_request.js +++ b/erpnext/stock/doctype/material_request/material_request.js @@ -108,12 +108,12 @@ frappe.ui.form.on('Material Request', { () => frm.events.create_pick_list(frm), __('Create')); } - if (frm.doc.material_request_type === "Material Transfer") { + if (frm.doc.material_request_type === 'Material Transfer') { add_create_pick_list_button(); - frm.add_custom_button(__("Material Transfer"), + frm.add_custom_button(__('Material Transfer'), () => frm.events.make_stock_entry(frm), __('Create')); - frm.add_custom_button(__("Material Transfer (In Transit)"), + frm.add_custom_button(__('Material Transfer (In Transit)'), () => frm.events.make_in_transit_stock_entry(frm), __('Create')); } @@ -372,7 +372,7 @@ frappe.ui.form.on('Material Request', { }) }, __('In Transit Transfer'), - __("Create Stock Entry") + __('Create Stock Entry') ) }, From 4f37ba9cfedf52973b0f91e7fc27ced7d556e9dc Mon Sep 17 00:00:00 2001 From: barredterra <14891507+barredterra@users.noreply.github.com> Date: Tue, 14 Feb 2023 19:34:36 +0100 Subject: [PATCH 173/355] fix: change parameter name for letter head To match changes from https://github.com/frappe/frappe/pull/19627 (cherry picked from commit f7fd30fecfb2cb570cf212d011dee5f1fcb13cf0) --- .../doctype/request_for_quotation/request_for_quotation.js | 2 +- .../doctype/request_for_quotation/request_for_quotation.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) 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 a9f5afb2e987..7f8dd56f51d4 100644 --- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js +++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js @@ -129,7 +129,7 @@ frappe.ui.form.on("Request for Quotation",{ 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 8e9ded98421a..332705e9339f 100644 --- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py +++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py @@ -388,7 +388,7 @@ def create_rfq_items(sq_doc, supplier, data): @frappe.whitelist() -def get_pdf(doctype, name, supplier, print_format=None, language=None, letter_head=None): +def get_pdf(doctype, name, supplier, print_format=None, language=None, letterhead=None): # permissions get checked in `download_pdf` if doc := get_rfq_doc(doctype, name, supplier): download_pdf( @@ -397,7 +397,7 @@ def get_pdf(doctype, name, supplier, print_format=None, language=None, letter_he print_format, doc=doc, language=language, - letter_head=letter_head or None, + letterhead=letterhead or None, ) From 1e2611fb1edac4cf6d9009674f5ad8400ef1705f Mon Sep 17 00:00:00 2001 From: barredterra <14891507+barredterra@users.noreply.github.com> Date: Tue, 14 Feb 2023 19:53:03 +0100 Subject: [PATCH 174/355] refactor: download RFQ PDF (cherry picked from commit 8e40c04494930c20b37bc48212639326e8f3857f) --- .../request_for_quotation.js | 1 - .../request_for_quotation.py | 35 ++++++++++--------- 2 files changed, 19 insertions(+), 17 deletions(-) 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 7f8dd56f51d4..2f0b7862a82d 100644 --- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js +++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js @@ -124,7 +124,6 @@ frappe.ui.form.on("Request for Quotation",{ 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", 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 332705e9339f..7927beb8233b 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 @@ def create_rfq_items(sq_doc, supplier, data): @frappe.whitelist() -def get_pdf(doctype, name, supplier, print_format=None, language=None, letterhead=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, - letterhead=letterhead 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() From bb174f931db4fea93984f6083a2d4de15030f150 Mon Sep 17 00:00:00 2001 From: barredterra <14891507+barredterra@users.noreply.github.com> Date: Tue, 14 Feb 2023 19:53:39 +0100 Subject: [PATCH 175/355] test: download RFQ PDF (cherry picked from commit d5b7f2e49e5d8c88d72815ff702823a86f2587de) --- .../request_for_quotation/test_request_for_quotation.py | 6 ++++++ 1 file changed, 6 insertions(+) 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 064b806e9534..d250e6f18a96 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 @@ def test_make_rfq_from_opportunity(self): 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): """ From 4a209fcb7cb7b2c4cee1680643df155491ed294d Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Mon, 13 Feb 2023 17:22:54 +0530 Subject: [PATCH 176/355] fix: opening_accumulated_depreciation and precision in charts (cherry picked from commit 47cc8ab6c6e6ad3cf13ba750e9410696be827c23) --- erpnext/assets/doctype/asset/asset.js | 39 ++++++++++--------- erpnext/assets/doctype/asset/asset.py | 8 ++-- .../fixed_asset_register.py | 10 ++--- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js index 276cc925208d..bffe19954579 100644 --- a/erpnext/assets/doctype/asset/asset.js +++ b/erpnext/assets/doctype/asset/asset.js @@ -210,52 +210,53 @@ frappe.ui.form.on('Asset', { 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.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'))); + } + $.each(frm.doc.schedules || [], function(i, v) { - x_intervals.push(v.schedule_date); - var asset_value = flt(frm.doc.gross_purchase_amount) - flt(v.accumulated_depreciation_amount); + 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) { - 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) + 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); }); } 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 cd9f3b420d1f..d3eb958fa6d7 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -693,14 +693,16 @@ def get_status(self): 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 + 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: 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 5bfd4840d73d..0ab3e16e424e 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 @@ def get_data(filters): ] 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", ) @@ -194,7 +190,7 @@ def get_depreciation_amount_of_asset(asset, depreciation_amount_map, filters): 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): From be2ddd153641709f5d4d3ce43550323df5c7cb5e Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Mon, 13 Feb 2023 17:28:46 +0530 Subject: [PATCH 177/355] chore: break look if je processed (cherry picked from commit a220dc0c9c694a9213189b96be8eb9431457280c) --- erpnext/accounts/doctype/journal_entry/journal_entry.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index b9507b73e292..e52fd6225fbe 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -336,6 +336,8 @@ def unlink_asset_reference(self): finance_books.db_update() asset.set_status() + + break else: depr_value = d.debit or d.credit From 7692db27bdce071b18c49a3551591eab1f9bd783 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Tue, 14 Feb 2023 17:54:51 +0530 Subject: [PATCH 178/355] fix: asset_depreciation_and_balances report doesn't reflect manual depr entries (cherry picked from commit 1535c3d856a50c31ed1e2adaf022ca1a221aab9b) --- .../asset_depreciations_and_balances.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) 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 ad9b1ba58eb3..9cea37c4f802 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 @@ -135,6 +135,34 @@ def get_assets(filters): where a.docstatus=1 and a.company=%(company)s and a.purchase_date <= %(to_date)s and a.name = ds.parent and ifnull(ds.journal_entry, '') != '' 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 From e82c101b13f40301d4cc99e5d1874f73528f9977 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 15 Feb 2023 10:33:52 +0000 Subject: [PATCH 179/355] chore(release): Bumped to Version 14.16.1 ## [14.16.1](https://github.com/frappe/erpnext/compare/v14.16.0...v14.16.1) (2023-02-15) ### Bug Fixes * asset_depreciation_and_balances report doesn't reflect manual depr entries ([7692db2](https://github.com/frappe/erpnext/commit/7692db27bdce071b18c49a3551591eab1f9bd783)) * opening_accumulated_depreciation and precision in charts ([4a209fc](https://github.com/frappe/erpnext/commit/4a209fcb7cb7b2c4cee1680643df155491ed294d)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index ed5c841843dd..a62534530f4c 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.16.0" +__version__ = "14.16.1" def get_default_company(user=None): From 72e17e32678333ff28f88ea749a512b0b85e1fc3 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 9 Feb 2023 16:15:07 +0530 Subject: [PATCH 180/355] chore: copy `item_code` to `Batch` while creating new batch from SCR (cherry picked from commit ffa9c6e4d9f417de8bd0631d23c00fa2ac772ba2) --- .../subcontracting_receipt.js | 44 +++++++++++++------ 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js index b6bef8c4a028..3a2c53f4e44a 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js @@ -51,13 +51,31 @@ frappe.ui.form.on('Subcontracting Receipt', { } })); - 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 @@ frappe.ui.form.on('Subcontracting Receipt', { 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 @@ frappe.ui.form.on('Subcontracting Receipt', { 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 @@ frappe.ui.form.on('Subcontracting Receipt', { 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 @@ frappe.ui.form.on('Subcontracting Receipt', { 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')); } }, From ba5ea886cf59bf0c490b9401813649cc1107ca93 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Mon, 13 Feb 2023 22:37:26 +0530 Subject: [PATCH 181/355] fix: create `Delivery Trip` from `Delivery Note` list (cherry picked from commit 6c6195bae6e5fb315ba38d346da11b13ba18990d) --- .../doctype/delivery_note/delivery_note_list.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/erpnext/stock/doctype/delivery_note/delivery_note_list.js b/erpnext/stock/doctype/delivery_note/delivery_note_list.js index 9e6f3bc93217..6ff3ed3e8e5a 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 @@ frappe.listview_settings['Delivery Note'] = { 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 @@ frappe.listview_settings['Delivery Note'] = { // 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"); }); } }; From d7831685afcbb4a4fe15cee7abba113f43a996d1 Mon Sep 17 00:00:00 2001 From: HENRY Florian Date: Thu, 16 Feb 2023 09:16:19 +0100 Subject: [PATCH 182/355] fix: rename duplicate field name with same type into a DocType to avoid import Error (#34053) * fix: Delivery Note field label set * fix: Item field label de-duplicate name * fix: Payment Entry field label de-duplicate name * fix: Pruicing Rule field label de-duplicate name * fix: Project field label de-duplicate name * fix: Timesheet field label de-duplicate name * Update erpnext/accounts/doctype/pricing_rule/pricing_rule.json Co-authored-by: Sagar Sharma * Update erpnext/stock/doctype/item/item.json Co-authored-by: Sagar Sharma --------- Co-authored-by: Sagar Sharma (cherry picked from commit 4d79ffe3c6eff810e0244479aec1dc3ba650f10d) # Conflicts: # erpnext/stock/doctype/item/item.json --- .../doctype/payment_entry/payment_entry.json | 18 +++++++++--------- .../doctype/pricing_rule/pricing_rule.json | 4 ++-- erpnext/projects/doctype/project/project.json | 8 ++++---- .../projects/doctype/timesheet/timesheet.json | 10 ++++++---- .../doctype/delivery_note/delivery_note.json | 4 +++- erpnext/stock/doctype/item/item.json | 6 +++++- 6 files changed, 29 insertions(+), 21 deletions(-) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.json b/erpnext/accounts/doctype/payment_entry/payment_entry.json index 4a7a57b6275e..3927ecae43da 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/pricing_rule/pricing_rule.json b/erpnext/accounts/doctype/pricing_rule/pricing_rule.json index ce9ce647db0d..a63039e0e3ab 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/projects/doctype/project/project.json b/erpnext/projects/doctype/project/project.json index 37d98ad8ea1b..ba7aa850825f 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 0cce129034e6..468300661a04 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/stock/doctype/delivery_note/delivery_note.json b/erpnext/stock/doctype/delivery_note/delivery_note.json index 165a56b78390..0c1f82029e61 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/item/item.json b/erpnext/stock/doctype/item/item.json index d1d228dfdc65..aef8dde77339 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,11 @@ "index_web_pages_for_search": 1, "links": [], "make_attachments_public": 1, +<<<<<<< HEAD "modified": "2022-09-13 04:08:17.431731", +======= + "modified": "2023-02-14 04:48:26.343620", +>>>>>>> 4d79ffe3c6 (fix: rename duplicate field name with same type into a DocType to avoid import Error (#34053)) "modified_by": "Administrator", "module": "Stock", "name": "Item", From 2fdf6ab16497e11e33b2afa4865d5c5d828ce6f1 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 16 Feb 2023 14:01:17 +0530 Subject: [PATCH 183/355] chore: `conflicts` --- erpnext/stock/doctype/item/item.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/erpnext/stock/doctype/item/item.json b/erpnext/stock/doctype/item/item.json index aef8dde77339..e519b9b2133f 100644 --- a/erpnext/stock/doctype/item/item.json +++ b/erpnext/stock/doctype/item/item.json @@ -911,11 +911,7 @@ "index_web_pages_for_search": 1, "links": [], "make_attachments_public": 1, -<<<<<<< HEAD - "modified": "2022-09-13 04:08:17.431731", -======= "modified": "2023-02-14 04:48:26.343620", ->>>>>>> 4d79ffe3c6 (fix: rename duplicate field name with same type into a DocType to avoid import Error (#34053)) "modified_by": "Administrator", "module": "Stock", "name": "Item", From f7ea98cf44aeee534ded0a44819d46718725f67b Mon Sep 17 00:00:00 2001 From: Sagar Sharma Date: Thu, 16 Feb 2023 12:55:37 +0530 Subject: [PATCH 184/355] chore: update `CODEOWNERS` (cherry picked from commit e8b8c51d823775aa7ed0230b565ce0001758db7b) --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/CODEOWNERS b/CODEOWNERS index 1657fdacc965..465337a0c5c2 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -16,6 +16,7 @@ erpnext/maintenance/ @rohitwaghchaure @s-aga-r 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 From d5f6a5d193d538550101f59b6b035de8024e8da7 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 16 Feb 2023 13:21:17 +0530 Subject: [PATCH 185/355] fix: incorrect consumed qty in subcontracting receipt (cherry picked from commit 156e45970a5b1dbea37f687bfbcf8607b4d5cc8b) --- .../controllers/subcontracting_controller.py | 9 ++++- .../test_subcontracting_order.py | 35 +++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/erpnext/controllers/subcontracting_controller.py b/erpnext/controllers/subcontracting_controller.py index a9561fe2dac6..cc80f6ca984c 100644 --- a/erpnext/controllers/subcontracting_controller.py +++ b/erpnext/controllers/subcontracting_controller.py @@ -409,7 +409,14 @@ def __set_batch_nos(self, bom_item, item_row, rm_obj, qty): 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/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py b/erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py index d054ce0f9d4f..6a2983faaaf2 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 @@ def test_make_rm_stock_entry_for_batch_items(self): ) 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) From 03f07a20e7ae042f840351728f7625525a8b3ef2 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Fri, 17 Feb 2023 15:32:55 +0530 Subject: [PATCH 186/355] fix: asset repair status after deletion and asset status after manual depr entry --- .../doctype/journal_entry/journal_entry.py | 22 ++++++------------- erpnext/assets/doctype/asset/asset.js | 2 +- erpnext/assets/doctype/asset/asset.py | 13 +++++++---- erpnext/assets/doctype/asset/depreciation.py | 2 +- .../doctype/asset_repair/asset_repair.py | 3 +++ 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index e52fd6225fbe..f15ef52a761a 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -238,21 +238,16 @@ def update_asset_value(self): ): 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 ( @@ -341,12 +336,9 @@ def unlink_asset_reference(self): 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/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js index bffe19954579..1abcf6a55b64 100644 --- a/erpnext/assets/doctype/asset/asset.js +++ b/erpnext/assets/doctype/asset/asset.js @@ -250,7 +250,7 @@ frappe.ui.form.on('Asset', { $.each(depr_entries || [], function(i, v) { 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'))); }); } diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index d3eb958fa6d7..711ccc5e0508 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -677,11 +677,15 @@ def get_status(self): 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 + + 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 + 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" @@ -843,6 +847,7 @@ def get_manual_depreciation_entries(self): .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 196288e9e67e..e72e0afb9ce4 100644 --- a/erpnext/assets/doctype/asset/depreciation.py +++ b/erpnext/assets/doctype/asset/depreciation.py @@ -137,7 +137,7 @@ def make_depreciation_entry(asset_name, date=None): finance_books.value_after_depreciation -= d.depreciation_amount finance_books.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_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py index d5913c59463b..9ccf778a4bb6 100644 --- a/erpnext/assets/doctype/asset_repair/asset_repair.py +++ b/erpnext/assets/doctype/asset_repair/asset_repair.py @@ -77,6 +77,9 @@ def before_cancel(self): self.asset_doc.prepare_depreciation_data() 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.")) From 05f7fb8fa1e6a121d0cb3dc33b9c5d9e7ae454d9 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Tue, 7 Feb 2023 14:43:10 +0530 Subject: [PATCH 187/355] chore: add field `show_pay_button` in Buying Settings (cherry picked from commit d7ef5ad95573a2616191811edf09242a7535fc3d) --- .../buying/doctype/buying_settings/buying_settings.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/erpnext/buying/doctype/buying_settings/buying_settings.json b/erpnext/buying/doctype/buying_settings/buying_settings.json index 34417f7ac3a9..652dcf0d43c4 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", From 84da0c6f1eb8c66d8362ad07079f083aebaf49a9 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Wed, 8 Feb 2023 15:02:39 +0530 Subject: [PATCH 188/355] fix: show Purchase Order Portal `Pay` button based on configuration (cherry picked from commit 20bdc63b037187a6375f3d2958633270b82b5e2d) --- erpnext/templates/pages/order.html | 20 +++++++++++--------- erpnext/templates/pages/order.py | 1 + 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/erpnext/templates/pages/order.html b/erpnext/templates/pages/order.html index 6b354b2fab6d..bc34ad5ac500 100644 --- a/erpnext/templates/pages/order.html +++ b/erpnext/templates/pages/order.html @@ -34,16 +34,18 @@

{{ doc.name }}

- {% endblock %} diff --git a/erpnext/templates/pages/order.py b/erpnext/templates/pages/order.py index 185ec6615f6e..13772d31295d 100644 --- a/erpnext/templates/pages/order.py +++ b/erpnext/templates/pages/order.py @@ -55,6 +55,7 @@ def get_context(context): ) 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 From 72c0b2208fdea3e4660858575c9af17b52338547 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 17 Feb 2023 20:46:09 +0530 Subject: [PATCH 189/355] feat: provision to convert transaction based reposting to item warehouse based reposting (cherry picked from commit f1383b5ef91a536dc13d2b3638823597a9954f14) --- .../stock_reposting_settings.js | 19 +++++- .../stock_reposting_settings.py | 61 +++++++++++++++++++ 2 files changed, 78 insertions(+), 2 deletions(-) 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 42d0723d4276..5f81679bade8 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 e0c8ed12e7d5..51fb5ac4c409 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 @@ def set_minimum_reposting_time_slot(self): 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() From 53ab4d92e80a6b8b319887a6555e18da984a5a1e Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 19 Feb 2023 12:08:12 +0530 Subject: [PATCH 190/355] fix: forced delete linked desktop_icons (backport #34107) (#34130) fix: forced delete linked desktop_icons (#34107) * fix: forced delete linked desktop_icons * fix: black (cherry picked from commit 5e48e61c66558d43aa9a45eba8cfe90182c360f1) Co-authored-by: Shadrak Gurupnor <30501401+shadrak98@users.noreply.github.com> --- erpnext/patches/v13_0/delete_old_purchase_reports.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/erpnext/patches/v13_0/delete_old_purchase_reports.py b/erpnext/patches/v13_0/delete_old_purchase_reports.py index 987f53f37c1f..60621fbc9cad 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 @@ def execute(): 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 @@ def delete_auto_email_reports(report): 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) From 78795643cc13fe544cab03eb3989bd7ee8f31f07 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 19 Feb 2023 13:38:02 +0530 Subject: [PATCH 191/355] fix: consider rounded total amount while making payment request (#34110) fix: consider rounded total amount while making payment request (#34110) (cherry picked from commit 9c6466f15b90b9100635b76356f0a68426b053b1) Co-authored-by: ruthra kumar --- erpnext/accounts/doctype/payment_request/payment_request.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index 86c373cf93dc..b0ee58854826 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -495,7 +495,7 @@ def get_amount(ref_doc, payment_account=None): """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: From 9890cce6808820a3d149bc3ac93543091fecbdb3 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 19 Feb 2023 20:50:37 +0530 Subject: [PATCH 192/355] fix: ignore repost payment ledger on basic documents cancellation (#34054) fix: ignore repost payment ledger on basic documents cancellation (#34054) fix: ignore repost payment ledger on cancel/delete of Inv/Pay/JE's Co-authored-by: Deepesh Garg (cherry picked from commit c722f2819c20fc7d35692bfc545897a666322abd) Co-authored-by: ruthra kumar --- erpnext/accounts/doctype/journal_entry/journal_entry.js | 2 +- erpnext/accounts/doctype/journal_entry/journal_entry.py | 8 +++++++- erpnext/accounts/doctype/payment_entry/payment_entry.js | 2 +- erpnext/accounts/doctype/payment_entry/payment_entry.py | 8 +++++++- .../accounts/doctype/purchase_invoice/purchase_invoice.js | 2 +- .../accounts/doctype/purchase_invoice/purchase_invoice.py | 2 ++ erpnext/accounts/doctype/sales_invoice/sales_invoice.js | 2 +- erpnext/accounts/doctype/sales_invoice/sales_invoice.py | 2 ++ erpnext/controllers/accounts_controller.py | 6 ++++++ 9 files changed, 28 insertions(+), 6 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.js b/erpnext/accounts/doctype/journal_entry/journal_entry.js index 21f27aedc510..089f20b467df 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.js +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.js @@ -8,7 +8,7 @@ frappe.provide("erpnext.journal_entry"); 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 f15ef52a761a..56fe333e047e 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -89,7 +89,13 @@ def on_cancel(self): 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() diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js index 6039bdfe95fd..91374ae217b2 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.js +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js @@ -7,7 +7,7 @@ cur_frm.cscript.tax_table = "Advance Taxes and Charges"; 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.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index bc2a1e507938..a585924d20fd 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -92,7 +92,13 @@ def on_submit(self): 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/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js index a098e8d1db82..e2b4a1ad5bef 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js @@ -31,7 +31,7 @@ erpnext.accounts.PurchaseInvoice = class PurchaseInvoice extends erpnext.buying. 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 df4c2770e3c8..81824e11a2dd 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -1416,6 +1416,8 @@ def on_cancel(self): "GL Entry", "Stock Ledger Entry", "Repost Item Valuation", + "Repost Payment Ledger", + "Repost Payment Ledger Items", "Payment Ledger Entry", "Tax Withheld Vouchers", ) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js index a06da72ccbfc..89647da6e104 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js @@ -34,7 +34,7 @@ erpnext.accounts.SalesInvoiceController = class SalesInvoiceController extends e 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 4748826ec379..a56a2cf56bae 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -390,6 +390,8 @@ def on_cancel(self): "GL Entry", "Stock Ledger Entry", "Repost Item Valuation", + "Repost Payment Ledger", + "Repost Payment Ledger Items", "Payment Ledger Entry", ) diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index 6fa44c93c22e..3705fcf4990d 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -204,6 +204,12 @@ def before_cancel(self): 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") From 75567391a72f91251b721bf1bec2e97833fbd20f Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 19 Feb 2023 20:50:56 +0530 Subject: [PATCH 193/355] fix: differency entry journal debit/credit missing (#34104) fix: differency entry journal debit/credit missing (#34104) * fix: difference entry journal is wrong * fix: difference entry journal is wrong (cherry picked from commit 183e42af1a727b3597d0c48daf68b7f3c3d7f1ec) Co-authored-by: Alirio Castro --- .../doctype/payment_reconciliation/payment_reconciliation.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py index 675a3287fa41..e3d9c26b2d15 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py @@ -368,6 +368,7 @@ def make_difference_entry(self, row): "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), } ) From 8d98599a6c634b8ac418bc65196135ab5699829f Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 18 Jan 2023 23:07:54 +0530 Subject: [PATCH 194/355] fix: purchase invoice performance issue (cherry picked from commit 92d857d49c151e369451d07d36cf782e2f0e860b) --- .../purchase_invoice/purchase_invoice.py | 30 ++++++++++++---- .../purchase_receipt/purchase_receipt.py | 35 +++++++++++++------ .../purchase_receipt_item.json | 8 +++-- 3 files changed, 52 insertions(+), 21 deletions(-) diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py index 81824e11a2dd..3bac68a8f65c 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 @@ -1465,19 +1466,16 @@ def validate_supplier_invoice(self): 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) @@ -1493,6 +1491,24 @@ def update_billing_status_in_pr(self, update_modified=True): 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/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index 3739cb8c9dd7..e6025abf067d 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -887,18 +887,10 @@ def update_billing_percentage(pr_doc, update_modified=True): # Update Billing % based on pending accepted qty total_amount, total_billed_amount = 0, 0 - for item in pr_doc.items: - return_data = frappe.db.get_list( - "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 @@ def update_billing_percentage(pr_doc, update_modified=True): 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 557bb594bf0f..7a350b9e446b 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", From 695928389384074764cc902d3fd2ed393210a2d6 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 20 Feb 2023 12:20:03 +0530 Subject: [PATCH 195/355] fix: inventory dimension filter not overriding with existing filter for stock ledger report (cherry picked from commit 0e388ba87255ca196068d55afa4839bfc321f56d) --- erpnext/public/js/utils.js | 9 +++++++-- erpnext/stock/report/stock_ledger/stock_ledger.py | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js index 51dcd64d9ddb..58aa8d7da233 100755 --- a/erpnext/public/js/utils.js +++ b/erpnext/public/js/utils.js @@ -221,9 +221,9 @@ $.extend(erpnext.utils, { 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 @@ $.extend(erpnext.utils, { 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/stock/report/stock_ledger/stock_ledger.py b/erpnext/stock/report/stock_ledger/stock_ledger.py index 8b63c0f99869..da17cdeb5aed 100644 --- a/erpnext/stock/report/stock_ledger/stock_ledger.py +++ b/erpnext/stock/report/stock_ledger/stock_ledger.py @@ -306,7 +306,7 @@ def get_stock_ledger_entries(filters, items): 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) From 7bd04c27c8c4b4bf8df61f4782c1c429efc4a4b4 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Mon, 20 Feb 2023 11:14:41 +0530 Subject: [PATCH 196/355] fix(ux): `ReferenceError: me is not defined` Delivery Note (cherry picked from commit 1b010add265cdc3e646fc15d78c3c39428c4ad84) --- erpnext/stock/doctype/delivery_note/delivery_note.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js index ea3cf1948b3c..2562c6025745 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.js +++ b/erpnext/stock/doctype/delivery_note/delivery_note.js @@ -97,12 +97,12 @@ frappe.ui.form.on("Delivery Note", { } 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, From bc86b6977f2c21a47d4c801f59f2613cc3ce9200 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Mon, 20 Feb 2023 11:43:32 +0530 Subject: [PATCH 197/355] chore: `Linters` (cherry picked from commit 44ee9f0f190f6761ca92f4c5036109c152bd35db) --- erpnext/stock/doctype/delivery_note/delivery_note.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js index 2562c6025745..ae56645b7306 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.js +++ b/erpnext/stock/doctype/delivery_note/delivery_note.js @@ -102,7 +102,7 @@ frappe.ui.form.on("Delivery Note", { let button_label = (frm.doc.company === frm.doc.represents_company) ? "Internal Purchase Receipt" : "Inter Company Purchase Receipt"; - 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, From 7074c2b161a28de654ea9dee7bbd1bd4bc13b6db Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Tue, 21 Feb 2023 13:04:01 +0530 Subject: [PATCH 198/355] fix: fiscal year error for existing assets in fixed asset register (cherry picked from commit 76861eb332061c2e42c75e5ba42f01128024808a) --- .../assets/report/fixed_asset_register/fixed_asset_register.py | 1 + 1 file changed, 1 insertion(+) 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 0ab3e16e424e..ae99c491a93f 100644 --- a/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py +++ b/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py @@ -151,6 +151,7 @@ def prepare_chart_data(data, filters): filters.filter_based_on, "Monthly", company=filters.company, + ignore_fiscal_year=True, ) for d in period_list: From 00eb6329a7727425d504cc36494f4affa89eb44b Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 14:21:36 +0530 Subject: [PATCH 199/355] feat: Editable Sales Invoice (#32625) * feat: Editable Sales Invoice (cherry picked from commit 30da6ab2c1b870047d78b0f52196c906c6d3533d) # Conflicts: # erpnext/accounts/doctype/sales_invoice/sales_invoice.json * chore: Update allow on submit for Sales Invoice fields (cherry picked from commit e626107d3de7f95f15627a266e652cdfedf020a1) # Conflicts: # erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json * chore: Break into smaller functions (cherry picked from commit 42e4c37f15e2a0613be9104d390bfdc3032f85b7) * chore: Update allow on submit fields (cherry picked from commit 1105e520315cbee4915e696706ecc3bfa1f0af8f) # Conflicts: # erpnext/accounts/doctype/sales_invoice/sales_invoice.json * test: Add unit tests (cherry picked from commit ed98015a5639889086a7662256bf743dfe387ffc) * chore: Update tests (cherry picked from commit 1a980123a2c83c669735a87d1d59815666de6170) * chore: Reset repost_required_flag on cancel (cherry picked from commit 0966867c0835d1066edf4146156e18d7f91da2f1) # Conflicts: # erpnext/accounts/doctype/sales_invoice/sales_invoice.py * chore: Enable no-copy for repost required field (cherry picked from commit 5fe55176ecc7b148380dd9940c5c34dda2aa9cd9) # Conflicts: # erpnext/accounts/doctype/sales_invoice/sales_invoice.json * chore: Validate for deferred revenue invoices (cherry picked from commit e29f756146b42c203d6e2a456c5e1ebf13d2ee19) * chore: Resolve conflicts --------- Co-authored-by: Deepesh Garg --- .../doctype/sales_invoice/sales_invoice.js | 19 ++++ .../doctype/sales_invoice/sales_invoice.json | 19 +++- .../doctype/sales_invoice/sales_invoice.py | 99 ++++++++++++++++++- .../sales_invoice/test_sales_invoice.py | 26 +++++ .../sales_invoice_item.json | 8 +- .../sales_taxes_and_charges.json | 7 +- erpnext/public/js/controllers/accounts.js | 6 ++ 7 files changed, 176 insertions(+), 8 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js index 89647da6e104..37f42c114cca 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js @@ -64,6 +64,25 @@ erpnext.accounts.SalesInvoiceController = class SalesInvoiceController extends e this.frm.toggle_reqd("due_date", !this.frm.doc.is_return); + if (this.frm.doc.repost_required && this.frm.doc.docstatus===1) { + this.frm.set_intro(__("Accounting entries for this invoice needs to be reposted. Please click on 'Repost' button to update.")); + this.frm.add_custom_button(__('Repost Accounting Entries'), + () => { + this.frm.call({ + doc: this.frm.doc, + method: 'repost_accounting_entries', + freeze: true, + freeze_message: __('Reposting...'), + callback: (r) => { + if (!r.exc) { + frappe.msgprint(__('Accounting Entries are reposted')); + me.frm.refresh(); + } + } + }); + }).removeClass('btn-default').addClass('btn-warning'); + } + if (this.frm.doc.is_return) { this.frm.return_print_format = "Sales Invoice Return"; } diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json index 0c8ddeb2baec..f18fef5a1481 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json @@ -209,6 +209,7 @@ "is_internal_customer", "is_discounted", "remarks", + "repost_required", "connections_tab" ], "fields": [ @@ -1038,6 +1039,7 @@ "read_only": 1 }, { + "allow_on_submit": 1, "depends_on": "redeem_loyalty_points", "fieldname": "loyalty_redemption_account", "fieldtype": "Link", @@ -1336,6 +1338,7 @@ "options": "fa fa-money" }, { + "allow_on_submit": 1, "depends_on": "is_pos", "fieldname": "cash_bank_account", "fieldtype": "Link", @@ -1435,6 +1438,7 @@ "print_hide": 1 }, { + "allow_on_submit": 1, "depends_on": "is_pos", "fieldname": "account_for_change_amount", "fieldtype": "Link", @@ -1483,6 +1487,7 @@ "hide_seconds": 1 }, { + "allow_on_submit": 1, "fieldname": "write_off_account", "fieldtype": "Link", "hide_days": 1, @@ -1706,6 +1711,7 @@ "read_only": 1 }, { + "allow_on_submit": 1, "default": "No", "fieldname": "is_opening", "fieldtype": "Select", @@ -1922,6 +1928,7 @@ "read_only": 1 }, { + "allow_on_submit": 1, "depends_on": "eval:doc.is_internal_customer", "description": "Unrealized Profit / Loss account for intra-company transfers", "fieldname": "unrealized_profit_loss_account", @@ -1964,6 +1971,7 @@ "label": "Disable Rounded Total" }, { + "allow_on_submit": 1, "fieldname": "additional_discount_account", "fieldtype": "Link", "label": "Discount Account", @@ -2114,6 +2122,15 @@ "fieldname": "named_place", "fieldtype": "Data", "label": "Named Place" + }, + { + "default": "0", + "fieldname": "repost_required", + "fieldtype": "Check", + "hidden": 1, + "label": "Repost Required", + "no_copy": 1, + "read_only": 1 } ], "icon": "fa fa-file-text", @@ -2126,7 +2143,7 @@ "link_fieldname": "consolidated_invoice" } ], - "modified": "2023-01-28 19:45:47.538163", + "modified": "2022-11-07 16:02:07.972258", "modified_by": "Administrator", "module": "Accounts", "name": "Sales Invoice", diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index a56a2cf56bae..f5be4c7a3f3e 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -11,6 +11,9 @@ import erpnext from erpnext.accounts.deferred_revenue import validate_service_stop_date +from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import ( + get_accounting_dimensions, +) from erpnext.accounts.doctype.loyalty_program.loyalty_program import ( get_loyalty_program_details_with_points, validate_loyalty_points, @@ -100,13 +103,11 @@ def validate(self): self.validate_debit_to_acc() self.clear_unallocated_advances("Sales Invoice Advance", "advances") self.add_remarks() - self.validate_write_off_account() - self.validate_account_for_change_amount() self.validate_fixed_asset() self.set_income_account_for_fixed_assets() self.validate_item_cost_centers() - self.validate_income_account() self.check_conversion_rate() + self.validate_accounts() validate_inter_company_party( self.doctype, self.customer, self.company, self.inter_company_invoice_reference @@ -170,6 +171,11 @@ def validate(self): self.reset_default_field_value("set_warehouse", "items", "warehouse") + def validate_accounts(self): + self.validate_write_off_account() + self.validate_account_for_change_amount() + self.validate_income_account() + def validate_fixed_asset(self): for d in self.get("items"): if d.is_fixed_asset and d.meta.get_field("asset") and d.asset: @@ -368,6 +374,7 @@ def on_cancel(self): self.repost_future_sle_and_gle() self.db_set("status", "Cancelled") + self.db_set("repost_required", 0) if ( frappe.db.get_single_value("Selling Settings", "sales_update_frequency") == "Each Transaction" @@ -516,6 +523,92 @@ def update_time_sheet_detail(self, timesheet, args, sales_invoice): def on_update(self): self.set_paid_amount() + def on_update_after_submit(self): + if hasattr(self, "repost_required"): + needs_repost = 0 + + # Check if any field affecting accounting entry is altered + doc_before_update = self.get_doc_before_save() + accounting_dimensions = get_accounting_dimensions() + ["cost_center", "project"] + + # Check if opening entry check updated + if doc_before_update.get("is_opening") != self.is_opening: + needs_repost = 1 + + if not needs_repost: + # Parent Level Accounts excluding party account + for field in ( + "additional_discount_account", + "cash_bank_account", + "account_for_change_amount", + "write_off_account", + "loyalty_redemption_account", + "unrealized_profit_loss_account", + ): + if doc_before_update.get(field) != self.get(field): + needs_repost = 1 + break + + # Check for parent accounting dimensions + for dimension in accounting_dimensions: + if doc_before_update.get(dimension) != self.get(dimension): + needs_repost = 1 + break + + # Check for child tables + if self.check_if_child_table_updated( + "items", + doc_before_update, + ("income_account", "expense_account", "discount_account"), + accounting_dimensions, + ): + needs_repost = 1 + + if self.check_if_child_table_updated( + "taxes", doc_before_update, ("account_head",), accounting_dimensions + ): + needs_repost = 1 + + self.validate_accounts() + + # validate if deferred revenue is enabled for any item + # Don't allow to update the invoice if deferred revenue is enabled + for item in self.get("items"): + if item.enable_deferred_revenue: + frappe.throw( + _( + "Deferred Revenue is enabled for item {0}. You cannot update the invoice after submission." + ).format(item.item_code) + ) + + self.db_set("repost_required", needs_repost) + + def check_if_child_table_updated( + self, child_table, doc_before_update, fields_to_check, accounting_dimensions + ): + # Check if any field affecting accounting entry is altered + for index, item in enumerate(self.get(child_table)): + for field in fields_to_check: + if doc_before_update.get(child_table)[index].get(field) != item.get(field): + return True + + for dimension in accounting_dimensions: + if doc_before_update.get(child_table)[index].get(dimension) != item.get(dimension): + return True + + return False + + @frappe.whitelist() + def repost_accounting_entries(self): + if self.repost_required: + self.docstatus = 2 + self.make_gl_entries_on_cancel() + self.docstatus = 1 + self.make_gl_entries() + self.db_set("repost_required", 0) + else: + frappe.throw(_("No updates pending for reposting")) + def set_paid_amount(self): paid_amount = 0.0 base_paid_amount = 0.0 diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py index df3cfec24bcf..f9fb6232ac96 100644 --- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py @@ -2769,6 +2769,31 @@ def test_additional_discount_for_sales_invoice_with_discount_accounting_enabled( check_gl_entries(self, si.name, expected_gle, add_days(nowdate(), -1)) + # Update Invoice post submit and then check GL Entries again + + si.load_from_db() + si.items[0].income_account = "Service - _TC" + si.additional_discount_account = "_Test Account Sales - _TC" + si.taxes[0].account_head = "TDS Payable - _TC" + si.save() + + si.load_from_db() + self.assertTrue(si.repost_required) + + si.repost_accounting_entries() + + expected_gle = [ + ["_Test Account Sales - _TC", 22.0, 0.0, nowdate()], + ["Debtors - _TC", 88, 0.0, nowdate()], + ["Service - _TC", 0.0, 100.0, nowdate()], + ["TDS Payable - _TC", 0.0, 10.0, nowdate()], + ] + + check_gl_entries(self, si.name, expected_gle, add_days(nowdate(), -1)) + + si.load_from_db() + self.assertFalse(si.repost_required) + def test_asset_depreciation_on_sale_with_pro_rata(self): """ Tests if an Asset set to depreciate yearly on June 30, that gets sold on Sept 30, creates an additional depreciation entry on its date of sale. @@ -3326,6 +3351,7 @@ def check_gl_entries(doc, voucher_no, expected_gle, posting_date): """select account, debit, credit, posting_date from `tabGL Entry` where voucher_type='Sales Invoice' and voucher_no=%s and posting_date > %s + and is_cancelled = 0 order by posting_date asc, account asc""", (voucher_no, posting_date), as_dict=1, diff --git a/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json b/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json index f4f083068eec..cfda48e5c756 100644 --- a/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json +++ b/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json @@ -438,6 +438,7 @@ "label": "Accounting Details" }, { + "allow_on_submit": 1, "fieldname": "income_account", "fieldtype": "Link", "label": "Income Account", @@ -450,6 +451,7 @@ "width": "120px" }, { + "allow_on_submit": 1, "fieldname": "expense_account", "fieldtype": "Link", "label": "Expense Account", @@ -469,6 +471,7 @@ "print_hide": 1 }, { + "allow_on_submit": 1, "default": ":Company", "fieldname": "cost_center", "fieldtype": "Link", @@ -800,6 +803,7 @@ "options": "Finance Book" }, { + "allow_on_submit": 1, "fieldname": "project", "fieldtype": "Link", "label": "Project", @@ -822,7 +826,6 @@ "label": "Incoming Rate (Costing)", "no_copy": 1, "options": "Company:company:default_currency", - "precision": "6", "print_hide": 1 }, { @@ -835,6 +838,7 @@ "read_only": 1 }, { + "allow_on_submit": 1, "fieldname": "discount_account", "fieldtype": "Link", "label": "Discount Account", @@ -886,7 +890,7 @@ "idx": 1, "istable": 1, "links": [], - "modified": "2022-12-28 16:17:33.484531", + "modified": "2022-10-17 12:51:44.825398", "modified_by": "Administrator", "module": "Accounts", "name": "Sales Invoice Item", diff --git a/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.json b/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.json index 3a871bfceded..e236577e118a 100644 --- a/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.json +++ b/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.json @@ -51,6 +51,7 @@ "oldfieldtype": "Data" }, { + "allow_on_submit": 1, "columns": 2, "fieldname": "account_head", "fieldtype": "Link", @@ -63,6 +64,7 @@ "search_index": 1 }, { + "allow_on_submit": 1, "default": ":Company", "fieldname": "cost_center", "fieldtype": "Link", @@ -216,12 +218,13 @@ "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2021-08-05 20:04:01.726867", + "modified": "2022-10-17 13:08:17.776528", "modified_by": "Administrator", "module": "Accounts", "name": "Sales Taxes and Charges", "owner": "Administrator", "permissions": [], "sort_field": "modified", - "sort_order": "ASC" + "sort_order": "ASC", + "states": [] } \ No newline at end of file diff --git a/erpnext/public/js/controllers/accounts.js b/erpnext/public/js/controllers/accounts.js index c1fe72bb4889..a07f75d1c5d4 100644 --- a/erpnext/public/js/controllers/accounts.js +++ b/erpnext/public/js/controllers/accounts.js @@ -143,6 +143,12 @@ var get_payment_mode_account = function(frm, mode_of_payment, callback) { cur_frm.cscript.account_head = function(doc, cdt, cdn) { var d = locals[cdt][cdn]; + + if (doc.docstatus == 1) { + // Should not trigger any changes on change post submit + return; + } + if(!d.charge_type && d.account_head){ frappe.msgprint(__("Please select Charge Type first")); frappe.model.set_value(cdt, cdn, "account_head", ""); From 65aec3e4ff711ebc411fc30bc7db6288150975aa Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 14:22:57 +0530 Subject: [PATCH 200/355] fix: Use normal rounding for Tax Withholding Category (#34114) fix: Use normal rounding for Tax Withholding Category (#34114) (cherry picked from commit 35cdd996a9e4281ed269655ff5d9e22e866e199e) Co-authored-by: Deepesh Garg --- .../tax_withholding_category.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) 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 2c829b258b41..f0146ea70eb9 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 @@ def get_tax_amount(party_type, parties, inv, tax_details, posting_date, pan_no=N 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 @@ def is_valid_certificate( 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 From 44c837f86292ce935196d757d088dd15d3f54c4a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 15:06:00 +0530 Subject: [PATCH 201/355] fix: Filters in item-wise sales history report (#34145) fix: Filters in item-wise sales history report (#34145) (cherry picked from commit c88444a6c488369dfbfffdd71e76d5125afa2226) Co-authored-by: Deepesh Garg --- .../report/item_wise_sales_history/item_wise_sales_history.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 44c4d5497bad..2624db3191df 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 @@ def get_sales_order_details(company_list, filters): ) 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 @@ def get_sales_order_details(company_list, filters): 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) From 0bd765b8caa2fc7e8e2e43643f8f86934ca8fa3c Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 15:06:45 +0530 Subject: [PATCH 202/355] refactor: clear records in batches in 'Transaction Deletion Record' (#34109) refactor: clear records in batches in 'Transaction Deletion Record' (#34109) refactor: clear records in batches (cherry picked from commit 4a7b1de2d826cdb9580388018b0571e32c8ad11d) Co-authored-by: ruthra kumar --- .../transaction_deletion_record.py | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) 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 4256a7d83127..481a3a5ebea7 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 @@ def delete_child_tables(self, doctype, company_fieldname): "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 @@ def update_naming_series(self, naming_series, doctype_name): 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 @@ def delete_communications(self, doctype, company_fieldname): ) 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() From 74a3588e047c2848f9cf9847304e76557737588b Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 15:34:24 +0530 Subject: [PATCH 203/355] patch: reorder migration patches (#34071) chore: reorder migration patches. 'migrate_gl_to_payment_ledger', 'migrate_remarks_from_gl_to_payment_ledger' should always run last. (cherry picked from commit 68202639f567dd930bd9074fce1b10773fe4be12) Co-authored-by: ruthra kumar --- erpnext/patches.txt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 54957cd22283..adebe2b8ee95 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -306,7 +306,6 @@ erpnext.patches.v13_0.set_per_billed_in_return_delivery_note 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,10 +314,9 @@ erpnext.patches.v14_0.remove_hr_and_payroll_modules # 20-07-2022 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 -erpnext.patches.v13_0.update_schedule_type_in_loans erpnext.patches.v14_0.update_partial_tds_fields erpnext.patches.v14_0.create_incoterms_and_migrate_shipment erpnext.patches.v14_0.setup_clear_repost_logs @@ -326,4 +324,7 @@ erpnext.patches.v14_0.create_accounting_dimensions_for_payment_request erpnext.patches.v14_0.update_entry_type_for_journal_entry erpnext.patches.v14_0.change_autoname_for_tax_withheld_vouchers erpnext.patches.v14_0.update_asset_value_for_manual_depr_entries -erpnext.patches.v14_0.set_pick_list_status \ No newline at end of file +erpnext.patches.v14_0.set_pick_list_status +# 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 From 05d649087b1aef54c401ab6c18ada95671bed249 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Thu, 16 Feb 2023 20:42:45 +0530 Subject: [PATCH 204/355] fix: check for duplicate in pos closing and pos merge log entry (cherry picked from commit 47add0b7514b701ef43da810986c73c2852d6b97) --- .../pos_closing_entry/pos_closing_entry.py | 16 ++++++++++++++++ .../pos_invoice_merge_log.py | 18 ++++++++++++++++++ 2 files changed, 34 insertions(+) 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 655c4ec00355..115b415eedad 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 @@ def validate(self): 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 70e3baff2e43..438ff9f3c4c1 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 @@ -18,6 +18,22 @@ class POSInvoiceMergeLog(Document): 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": @@ -426,6 +442,8 @@ def create_merge_logs(invoice_by_customer, closing_entry=None): 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 From 0d986a2ac46317a4a26afba2caf68db29a1ae1e9 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 21 Feb 2023 17:17:32 +0000 Subject: [PATCH 205/355] chore(release): Bumped to Version 14.17.0 # [14.17.0](https://github.com/frappe/erpnext/compare/v14.16.1...v14.17.0) (2023-02-21) ### Bug Fixes * asset repair status after deletion and asset status after manual depr entry ([03f07a2](https://github.com/frappe/erpnext/commit/03f07a20e7ae042f840351728f7625525a8b3ef2)) * asset_depreciation_and_balances report doesn't reflect manual depr entries ([1535c3d](https://github.com/frappe/erpnext/commit/1535c3d856a50c31ed1e2adaf022ca1a221aab9b)) * change parameter name for letter head ([4f37ba9](https://github.com/frappe/erpnext/commit/4f37ba9cfedf52973b0f91e7fc27ced7d556e9dc)) * check for duplicate in pos closing and pos merge log entry ([05d6490](https://github.com/frappe/erpnext/commit/05d649087b1aef54c401ab6c18ada95671bed249)) * consider rounded total amount while making payment request ([#34110](https://github.com/frappe/erpnext/issues/34110)) ([7879564](https://github.com/frappe/erpnext/commit/78795643cc13fe544cab03eb3989bd7ee8f31f07)) * create `Delivery Trip` from `Delivery Note` list ([ba5ea88](https://github.com/frappe/erpnext/commit/ba5ea886cf59bf0c490b9401813649cc1107ca93)) * differency entry journal debit/credit missing ([#34104](https://github.com/frappe/erpnext/issues/34104)) ([7556739](https://github.com/frappe/erpnext/commit/75567391a72f91251b721bf1bec2e97833fbd20f)) * Filters in item-wise sales history report ([#34145](https://github.com/frappe/erpnext/issues/34145)) ([44c837f](https://github.com/frappe/erpnext/commit/44c837f86292ce935196d757d088dd15d3f54c4a)) * fiscal year error for existing assets in fixed asset register ([7074c2b](https://github.com/frappe/erpnext/commit/7074c2b161a28de654ea9dee7bbd1bd4bc13b6db)) * forced delete linked desktop_icons (backport [#34107](https://github.com/frappe/erpnext/issues/34107)) ([#34130](https://github.com/frappe/erpnext/issues/34130)) ([53ab4d9](https://github.com/frappe/erpnext/commit/53ab4d92e80a6b8b319887a6555e18da984a5a1e)) * ignore repost payment ledger on basic documents cancellation ([#34054](https://github.com/frappe/erpnext/issues/34054)) ([9890cce](https://github.com/frappe/erpnext/commit/9890cce6808820a3d149bc3ac93543091fecbdb3)) * incorrect consumed qty in subcontracting receipt ([d5f6a5d](https://github.com/frappe/erpnext/commit/d5f6a5d193d538550101f59b6b035de8024e8da7)) * inventory dimension filter not overriding with existing filter for stock ledger report ([6959283](https://github.com/frappe/erpnext/commit/695928389384074764cc902d3fd2ed393210a2d6)) * linters issue ([f65e471](https://github.com/frappe/erpnext/commit/f65e471a75566efbc0ea46bef94b19644ecd767c)) * opening_accumulated_depreciation and precision in charts ([47cc8ab](https://github.com/frappe/erpnext/commit/47cc8ab6c6e6ad3cf13ba750e9410696be827c23)) * purchase invoice performance issue ([8d98599](https://github.com/frappe/erpnext/commit/8d98599a6c634b8ac418bc65196135ab5699829f)) * rename duplicate field name with same type into a DocType to avoid import Error ([#34053](https://github.com/frappe/erpnext/issues/34053)) ([d783168](https://github.com/frappe/erpnext/commit/d7831685afcbb4a4fe15cee7abba113f43a996d1)) * show Purchase Order Portal `Pay` button based on configuration ([84da0c6](https://github.com/frappe/erpnext/commit/84da0c6f1eb8c66d8362ad07079f083aebaf49a9)) * update `reserved_qty` when `Sales Order` marked as `Hold` ([15898cc](https://github.com/frappe/erpnext/commit/15898cc2ec5289ad3852cfe61ec64ff572c262d1)) * Use normal rounding for Tax Withholding Category ([#34114](https://github.com/frappe/erpnext/issues/34114)) ([65aec3e](https://github.com/frappe/erpnext/commit/65aec3e4ff711ebc411fc30bc7db6288150975aa)) * **ux:** `ReferenceError: me is not defined` Delivery Note ([7bd04c2](https://github.com/frappe/erpnext/commit/7bd04c27c8c4b4bf8df61f4782c1c429efc4a4b4)) ### Features * allow to make in transit transfer entry from material request ([a7b682e](https://github.com/frappe/erpnext/commit/a7b682e26b2e1c810891effc3e15606573fb1168)) * Editable Sales Invoice ([#32625](https://github.com/frappe/erpnext/issues/32625)) ([00eb632](https://github.com/frappe/erpnext/commit/00eb6329a7727425d504cc36494f4affa89eb44b)) * provision to convert transaction based reposting to item warehouse based reposting ([72c0b22](https://github.com/frappe/erpnext/commit/72c0b2208fdea3e4660858575c9af17b52338547)) * translate fixtures during runtime, not installation ([#33996](https://github.com/frappe/erpnext/issues/33996)) ([d117de7](https://github.com/frappe/erpnext/commit/d117de7813ea8e773f3b8d5262415ac18fda870f)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index a62534530f4c..1bc5fa3bf186 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.16.1" +__version__ = "14.17.0" def get_default_company(user=None): From 001ed9e9ffc89e9f0b94a3d33c79241502f7ed8b Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 22 Feb 2023 14:24:18 +0530 Subject: [PATCH 206/355] fix: incorrect color in the BOM Stock Report (cherry picked from commit a8f03ebf7f61c14d2cff45510acd670f0671a1b5) --- .../manufacturing/report/bom_stock_report/bom_stock_report.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 7beecaceedf5..e7f67caf249b 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 @@ frappe.query_reports["BOM Stock Report"] = { ], "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 = `${data['item']}`; } else { value = `${data['item']}`; From 1750ed4fb6648abc8fc0aa1695793ee948fc9303 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Thu, 23 Feb 2023 09:36:21 +0530 Subject: [PATCH 207/355] fix: ui freeze on item selection in sales invoice (cherry picked from commit 6412583e9825bd3847f64b43f44409b57236e557) --- erpnext/selling/sales_common.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js index 8ff01f5cb4c6..5ce6e9c14604 100644 --- a/erpnext/selling/sales_common.js +++ b/erpnext/selling/sales_common.js @@ -418,8 +418,6 @@ erpnext.selling.SellingController = class SellingController extends erpnext.Tran callback: function(r) { if(r.message) { frappe.model.set_value(doc.doctype, doc.name, 'batch_no', r.message); - } else { - frappe.model.set_value(doc.doctype, doc.name, 'batch_no', r.message); } } }); From 1859be6fef648a03cfb10955d7a4b1361505007a Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 22 Feb 2023 13:29:06 +0530 Subject: [PATCH 208/355] fix: zero division error while making LCV (cherry picked from commit 80e94a08cfccd888b91e921a3c8b2418b6aed6c0) --- .../landed_cost_voucher.py | 9 ++- .../test_landed_cost_voucher.py | 55 ++++++++++++++++++- .../purchase_receipt/purchase_receipt.py | 24 ++++++-- 3 files changed, 80 insertions(+), 8 deletions(-) diff --git a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py index b3af309359a3..111a0861b719 100644 --- a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py +++ b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py @@ -55,7 +55,6 @@ def validate(self): self.get_items_from_purchase_receipts() self.set_applicable_charges_on_item() - self.validate_applicable_charges_for_item() def check_mandatory(self): if not self.get("purchase_receipts"): @@ -115,6 +114,13 @@ def set_applicable_charges_on_item(self): total_item_cost += item.get(based_on_field) for item in self.get("items"): + if not total_item_cost and not item.get(based_on_field): + frappe.throw( + _( + "It's not possible to distribute charges equally when total amount is zero, please set 'Distribute Charges Based On' as 'Quantity'" + ) + ) + item.applicable_charges = flt( flt(item.get(based_on_field)) * (flt(self.total_taxes_and_charges) / flt(total_item_cost)), item.precision("applicable_charges"), @@ -162,6 +168,7 @@ def validate_applicable_charges_for_item(self): ) def on_submit(self): + self.validate_applicable_charges_for_item() self.update_landed_cost() def on_cancel(self): diff --git a/erpnext/stock/doctype/landed_cost_voucher/test_landed_cost_voucher.py b/erpnext/stock/doctype/landed_cost_voucher/test_landed_cost_voucher.py index 979b5c4f838d..00fa1686c0d3 100644 --- a/erpnext/stock/doctype/landed_cost_voucher/test_landed_cost_voucher.py +++ b/erpnext/stock/doctype/landed_cost_voucher/test_landed_cost_voucher.py @@ -175,6 +175,59 @@ def test_landed_cost_voucher_stock_impact(self): ) self.assertEqual(last_sle_after_landed_cost.stock_value - last_sle.stock_value, 50.0) + def test_landed_cost_voucher_for_zero_purchase_rate(self): + "Test impact of LCV on future stock balances." + from erpnext.stock.doctype.item.test_item import make_item + + item = make_item("LCV Stock Item", {"is_stock_item": 1}) + warehouse = "Stores - _TC" + + pr = make_purchase_receipt( + item_code=item.name, + warehouse=warehouse, + qty=10, + rate=0, + posting_date=add_days(frappe.utils.nowdate(), -2), + ) + + self.assertEqual( + frappe.db.get_value( + "Stock Ledger Entry", + {"voucher_type": "Purchase Receipt", "voucher_no": pr.name, "is_cancelled": 0}, + "stock_value_difference", + ), + 0, + ) + + lcv = make_landed_cost_voucher( + company=pr.company, + receipt_document_type="Purchase Receipt", + receipt_document=pr.name, + charges=100, + distribute_charges_based_on="Distribute Manually", + do_not_save=True, + ) + + lcv.get_items_from_purchase_receipts() + lcv.items[0].applicable_charges = 100 + lcv.save() + lcv.submit() + + self.assertTrue( + frappe.db.exists( + "Stock Ledger Entry", + {"voucher_type": "Purchase Receipt", "voucher_no": pr.name, "is_cancelled": 0}, + ) + ) + self.assertEqual( + frappe.db.get_value( + "Stock Ledger Entry", + {"voucher_type": "Purchase Receipt", "voucher_no": pr.name, "is_cancelled": 0}, + "stock_value_difference", + ), + 100, + ) + def test_landed_cost_voucher_against_purchase_invoice(self): pi = make_purchase_invoice( @@ -516,7 +569,7 @@ def make_landed_cost_voucher(**args): lcv = frappe.new_doc("Landed Cost Voucher") lcv.company = args.company or "_Test Company" - lcv.distribute_charges_based_on = "Amount" + lcv.distribute_charges_based_on = args.distribute_charges_based_on or "Amount" lcv.set( "purchase_receipts", diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index e6025abf067d..bb318f72526b 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -1134,13 +1134,25 @@ def get_item_account_wise_additional_cost(purchase_document): account.expense_account, {"amount": 0.0, "base_amount": 0.0} ) - item_account_wise_cost[(item.item_code, item.purchase_receipt_item)][account.expense_account][ - "amount" - ] += (account.amount * item.get(based_on_field) / total_item_cost) + if total_item_cost > 0: + item_account_wise_cost[(item.item_code, item.purchase_receipt_item)][ + account.expense_account + ]["amount"] += ( + account.amount * item.get(based_on_field) / total_item_cost + ) - item_account_wise_cost[(item.item_code, item.purchase_receipt_item)][account.expense_account][ - "base_amount" - ] += (account.base_amount * item.get(based_on_field) / total_item_cost) + item_account_wise_cost[(item.item_code, item.purchase_receipt_item)][ + account.expense_account + ]["base_amount"] += ( + account.base_amount * item.get(based_on_field) / total_item_cost + ) + else: + item_account_wise_cost[(item.item_code, item.purchase_receipt_item)][ + account.expense_account + ]["amount"] += item.applicable_charges + item_account_wise_cost[(item.item_code, item.purchase_receipt_item)][ + account.expense_account + ]["base_amount"] += item.applicable_charges return item_account_wise_cost From db1f17e5bce13093a97b5cca6da395f0432301e1 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Fri, 3 Feb 2023 16:24:52 +0530 Subject: [PATCH 209/355] perf: fetch SLE's on demand and memoize (cherry picked from commit 3e5691072aa1243e932c31e7514dafcd9cd92a43) --- .../report/gross_profit/gross_profit.py | 52 ++++++++++++------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py index 8ce7d1d33680..4bcbb0e451ca 100644 --- a/erpnext/accounts/report/gross_profit/gross_profit.py +++ b/erpnext/accounts/report/gross_profit/gross_profit.py @@ -395,6 +395,7 @@ def get_column_names(): class GrossProfitGenerator(object): def __init__(self, filters=None): + self.sle = {} self.data = [] self.average_buying_rate = {} self.filters = frappe._dict(filters) @@ -404,7 +405,6 @@ def __init__(self, filters=None): if filters.group_by == "Invoice": self.group_items_by_invoice() - self.load_stock_ledger_entries() self.load_product_bundle() self.load_non_stock_items() self.get_returned_invoice_items() @@ -633,7 +633,7 @@ def get_buying_amount(self, row, item_code): return flt(row.qty) * item_rate else: - my_sle = self.sle.get((item_code, row.warehouse)) + my_sle = self.get_stock_ledger_entries(item_code, row.warehouse) if (row.update_stock or row.dn_detail) and my_sle: parenttype, parent = row.parenttype, row.parent if row.dn_detail: @@ -651,7 +651,7 @@ def get_buying_amount(self, row, item_code): dn["item_row"], dn["warehouse"], ) - my_sle = self.sle.get((item_code, warehouse)) + my_sle = self.get_stock_ledger_entries(item_code, row.warehouse) return self.calculate_buying_amount_from_sle( row, my_sle, parenttype, parent, item_row, item_code ) @@ -940,24 +940,36 @@ def get_bundle_item_details(self, item_code): "Item", item_code, ["item_name", "description", "item_group", "brand"] ) - def load_stock_ledger_entries(self): - res = frappe.db.sql( - """select item_code, voucher_type, voucher_no, - voucher_detail_no, stock_value, warehouse, actual_qty as qty - from `tabStock Ledger Entry` - where company=%(company)s and is_cancelled = 0 - order by - item_code desc, warehouse desc, posting_date desc, - posting_time desc, creation desc""", - self.filters, - as_dict=True, - ) - self.sle = {} - for r in res: - if (r.item_code, r.warehouse) not in self.sle: - self.sle[(r.item_code, r.warehouse)] = [] + def get_stock_ledger_entries(self, item_code, warehouse): + if item_code and warehouse: + if (item_code, warehouse) not in self.sle: + sle = qb.DocType("Stock Ledger Entry") + res = ( + qb.from_(sle) + .select( + sle.item_code, + sle.voucher_type, + sle.voucher_no, + sle.voucher_detail_no, + sle.stock_value, + sle.warehouse, + sle.actual_qty.as_("qty"), + ) + .where( + (sle.company == self.filters.company) + & (sle.item_code == item_code) + & (sle.warehouse == warehouse) + & (sle.is_cancelled == 0) + ) + .orderby(sle.item_code) + .orderby(sle.warehouse, sle.posting_date, sle.posting_time, sle.creation, order=Order.desc) + .run(as_dict=True) + ) + + self.sle[(item_code, warehouse)] = res - self.sle[(r.item_code, r.warehouse)].append(r) + return self.sle[(item_code, warehouse)] + return [] def load_product_bundle(self): self.product_bundles = {} From 204f9a414fe3b067a21e93fe28ab43508a9f293d Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Thu, 23 Feb 2023 11:15:56 +0530 Subject: [PATCH 210/355] refactor: use docstatus from Delivery Note Item (cherry picked from commit 88d888d9d08f5649e142ce2f5b376900cb851a4a) --- erpnext/accounts/report/gross_profit/gross_profit.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py index 4bcbb0e451ca..e4b4f2260c6d 100644 --- a/erpnext/accounts/report/gross_profit/gross_profit.py +++ b/erpnext/accounts/report/gross_profit/gross_profit.py @@ -667,15 +667,12 @@ def get_buying_amount(self, row, item_code): def get_buying_amount_from_so_dn(self, sales_order, so_detail, item_code): from frappe.query_builder.functions import Sum - delivery_note = frappe.qb.DocType("Delivery Note") delivery_note_item = frappe.qb.DocType("Delivery Note Item") query = ( - frappe.qb.from_(delivery_note) - .inner_join(delivery_note_item) - .on(delivery_note.name == delivery_note_item.parent) + frappe.qb.from_(delivery_note_item) .select(Sum(delivery_note_item.incoming_rate * delivery_note_item.stock_qty)) - .where(delivery_note.docstatus == 1) + .where(delivery_note_item.docstatus == 1) .where(delivery_note_item.item_code == item_code) .where(delivery_note_item.against_sales_order == sales_order) .where(delivery_note_item.so_detail == so_detail) From fb8e45d3d9520a101ebd7b8f4bd6920edea2b968 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 23 Feb 2023 20:04:14 +0530 Subject: [PATCH 211/355] fix: user shouldn't able to make item price for item template (cherry picked from commit 6417ae0ee83d3a2b384987cc3747917e92d6a4ab) --- .../stock/doctype/item_price/item_price.js | 13 ++++++++++- .../stock/doctype/item_price/item_price.py | 9 +++++++- .../doctype/item_price/test_item_price.py | 22 +++++++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/item_price/item_price.js b/erpnext/stock/doctype/item_price/item_price.js index 12cf6cf84d59..ce489ff52b4d 100644 --- a/erpnext/stock/doctype/item_price/item_price.js +++ b/erpnext/stock/doctype/item_price/item_price.js @@ -2,7 +2,18 @@ // License: GNU General Public License v3. See license.txt frappe.ui.form.on("Item Price", { - onload: function (frm) { + setup(frm) { + frm.set_query("item_code", function() { + return { + filters: { + "disabled": 0, + "has_variants": 0 + } + }; + }); + }, + + onload(frm) { // Fetch price list details frm.add_fetch("price_list", "buying", "buying"); frm.add_fetch("price_list", "selling", "selling"); diff --git a/erpnext/stock/doctype/item_price/item_price.py b/erpnext/stock/doctype/item_price/item_price.py index bcd31ada83e1..54d1ae634f53 100644 --- a/erpnext/stock/doctype/item_price/item_price.py +++ b/erpnext/stock/doctype/item_price/item_price.py @@ -3,7 +3,7 @@ import frappe -from frappe import _ +from frappe import _, bold from frappe.model.document import Document from frappe.query_builder import Criterion from frappe.query_builder.functions import Cast_ @@ -21,6 +21,7 @@ def validate(self): self.update_price_list_details() self.update_item_details() self.check_duplicates() + self.validate_item_template() def validate_item(self): if not frappe.db.exists("Item", self.item_code): @@ -49,6 +50,12 @@ def update_item_details(self): "Item", self.item_code, ["item_name", "description"] ) + def validate_item_template(self): + if frappe.get_cached_value("Item", self.item_code, "has_variants"): + msg = f"Item Price cannot be created for the template item {bold(self.item_code)}" + + frappe.throw(_(msg)) + def check_duplicates(self): item_price = frappe.qb.DocType("Item Price") diff --git a/erpnext/stock/doctype/item_price/test_item_price.py b/erpnext/stock/doctype/item_price/test_item_price.py index 30d933e247de..8fd4938fa353 100644 --- a/erpnext/stock/doctype/item_price/test_item_price.py +++ b/erpnext/stock/doctype/item_price/test_item_price.py @@ -16,6 +16,28 @@ def setUp(self): frappe.db.sql("delete from `tabItem Price`") make_test_records_for_doctype("Item Price", force=True) + def test_template_item_price(self): + from erpnext.stock.doctype.item.test_item import make_item + + item = make_item( + "Test Template Item 1", + { + "has_variants": 1, + "variant_based_on": "Manufacturer", + }, + ) + + doc = frappe.get_doc( + { + "doctype": "Item Price", + "price_list": "_Test Price List", + "item_code": item.name, + "price_list_rate": 100, + } + ) + + self.assertRaises(frappe.ValidationError, doc.save) + def test_duplicate_item(self): doc = frappe.copy_doc(test_records[0]) self.assertRaises(ItemPriceDuplicateItem, doc.save) From 089c7d0a376fa54f7eae825ab4bac565253c952a Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 24 Feb 2023 14:42:55 +0530 Subject: [PATCH 212/355] fix: conversion factor not set (cherry picked from commit 8e46aebc50110fab1a3f123aa22cb8e06907d451) --- erpnext/stock/doctype/item/item.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js index 5bcb05aa9888..9a9ddf440443 100644 --- a/erpnext/stock/doctype/item/item.js +++ b/erpnext/stock/doctype/item/item.js @@ -33,6 +33,9 @@ frappe.ui.form.on("Item", { 'Material Request': () => { open_form(frm, "Material Request", "Material Request Item", "items"); }, + 'Stock Entry': () => { + open_form(frm, "Stock Entry", "Stock Entry Detail", "items"); + }, }; }, @@ -893,6 +896,9 @@ function open_form(frm, doctype, child_doctype, parentfield) { new_child_doc.item_name = frm.doc.item_name; new_child_doc.uom = frm.doc.stock_uom; new_child_doc.description = frm.doc.description; + if (!new_child_doc.qty) { + new_child_doc.qty = 1.0; + } frappe.run_serially([ () => frappe.ui.form.make_quick_entry(doctype, null, null, new_doc), From 9341d3e60ef528430c1914ddd50c4576d316224a Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Fri, 24 Feb 2023 15:28:14 +0530 Subject: [PATCH 213/355] Revert "fix: Concurrency issues in Sales and Purchase returns" (#34202) Revert "fix: Concurrency issues in Sales and Purchase returns (#34019)" This reverts commit a67284e96dabe71b76a373b5f1f3142dccf3952b. (cherry picked from commit e26c6dc76b16707c31e9a0277c2710a4c5cb43f0) --- erpnext/controllers/sales_and_purchase_return.py | 1 - 1 file changed, 1 deletion(-) diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py index 935796c7a712..8bd09982bf42 100644 --- a/erpnext/controllers/sales_and_purchase_return.py +++ b/erpnext/controllers/sales_and_purchase_return.py @@ -252,7 +252,6 @@ def get_already_returned_items(doc): 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 ), From 3c2e21e2aee9bf3ca6bdd167aaa864a13107cff0 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Fri, 24 Feb 2023 15:28:14 +0530 Subject: [PATCH 214/355] Revert "fix: Concurrency issues in Sales and Purchase returns" (#34202) Revert "fix: Concurrency issues in Sales and Purchase returns (#34019)" This reverts commit a67284e96dabe71b76a373b5f1f3142dccf3952b. (cherry picked from commit e26c6dc76b16707c31e9a0277c2710a4c5cb43f0) (cherry picked from commit 9341d3e60ef528430c1914ddd50c4576d316224a) --- erpnext/controllers/sales_and_purchase_return.py | 1 - 1 file changed, 1 deletion(-) diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py index 935796c7a712..8bd09982bf42 100644 --- a/erpnext/controllers/sales_and_purchase_return.py +++ b/erpnext/controllers/sales_and_purchase_return.py @@ -252,7 +252,6 @@ def get_already_returned_items(doc): 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 ), From cb266cd1c65e1b24b52c05952bb18a332de15e36 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Fri, 24 Feb 2023 10:07:56 +0000 Subject: [PATCH 215/355] chore(release): Bumped to Version 14.17.1 ## [14.17.1](https://github.com/frappe/erpnext/compare/v14.17.0...v14.17.1) (2023-02-24) ### Reverts * Revert "fix: Concurrency issues in Sales and Purchase returns" (#34202) ([3c2e21e](https://github.com/frappe/erpnext/commit/3c2e21e2aee9bf3ca6bdd167aaa864a13107cff0)), closes [#34202](https://github.com/frappe/erpnext/issues/34202) [#34019](https://github.com/frappe/erpnext/issues/34019) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 1bc5fa3bf186..ca10f275302e 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.17.0" +__version__ = "14.17.1" def get_default_company(user=None): From 971c0720e52b5120ab3497f3fc5bd5964b0deff7 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Fri, 24 Feb 2023 16:38:39 +0530 Subject: [PATCH 216/355] fix: manual depr schedule --- erpnext/assets/doctype/asset/asset.js | 18 +++++++++++------- erpnext/assets/doctype/asset/asset.py | 15 +++++++++------ 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js index 1abcf6a55b64..8dd479f5082a 100644 --- a/erpnext/assets/doctype/asset/asset.js +++ b/erpnext/assets/doctype/asset/asset.js @@ -567,19 +567,23 @@ frappe.ui.form.on('Depreciation Schedule', { }, depreciation_amount: function(frm, cdt, cdn) { - erpnext.asset.set_accumulated_depreciation(frm); + erpnext.asset.set_accumulated_depreciation(frm, locals[cdt][cdn].finance_book_id); } -}) +}); + +erpnext.asset.set_accumulated_depreciation = function(frm, finance_book_id) { + var depreciation_method = frm.doc.finance_books[Number(finance_book_id) - 1].depreciation_method; -erpnext.asset.set_accumulated_depreciation = function(frm) { - if(frm.doc.depreciation_method != "Manual") return; + if(depreciation_method != "Manual") return; var accumulated_depreciation = flt(frm.doc.opening_accumulated_depreciation); + $.each(frm.doc.schedules || [], function(i, row) { - accumulated_depreciation += flt(row.depreciation_amount); - frappe.model.set_value(row.doctype, row.name, - "accumulated_depreciation_amount", accumulated_depreciation); + if (row.finance_book_id === finance_book_id) { + accumulated_depreciation += flt(row.depreciation_amount); + frappe.model.set_value(row.doctype, row.name, "accumulated_depreciation_amount", accumulated_depreciation); + }; }) }; diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 711ccc5e0508..1c2ef58b54da 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -84,8 +84,11 @@ def prepare_depreciation_data(self, date_of_disposal=None, date_of_return=None): if self.calculate_depreciation: self.value_after_depreciation = 0 self.set_depreciation_rate() - self.make_depreciation_schedule(date_of_disposal) - self.set_accumulated_depreciation(date_of_disposal, date_of_return) + if not ( + self.get("schedules") and "Manual" in [d.depreciation_method for d in self.finance_books] + ): + self.make_depreciation_schedule(date_of_disposal) + self.set_accumulated_depreciation(date_of_disposal, date_of_return) else: self.finance_books = [] self.value_after_depreciation = flt(self.gross_purchase_amount) - flt( @@ -225,9 +228,7 @@ def set_depreciation_rate(self): ) def make_depreciation_schedule(self, date_of_disposal): - if "Manual" not in [d.depreciation_method for d in self.finance_books] and not self.get( - "schedules" - ): + if not self.get("schedules"): self.schedules = [] if not self.available_for_use_date: @@ -556,7 +557,9 @@ def set_accumulated_depreciation( self, date_of_disposal=None, date_of_return=None, ignore_booked_entry=False ): straight_line_idx = [ - d.idx for d in self.get("schedules") if d.depreciation_method == "Straight Line" + d.idx + for d in self.get("schedules") + if d.depreciation_method == "Straight Line" or d.depreciation_method == "Manual" ] finance_books = [] From b0d670a51da32ebafef0a9eef39083bd2d8fdf43 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Fri, 24 Feb 2023 20:34:36 +0530 Subject: [PATCH 217/355] chore: handle change in opening_accumulated_depreciation properly --- erpnext/assets/doctype/asset/asset.js | 4 ---- erpnext/assets/doctype/asset/asset.py | 5 ++++- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js index 8dd479f5082a..21d846f68062 100644 --- a/erpnext/assets/doctype/asset/asset.js +++ b/erpnext/assets/doctype/asset/asset.js @@ -302,10 +302,6 @@ frappe.ui.form.on('Asset', { // frm.toggle_reqd("next_depreciation_date", (!frm.doc.is_existing_asset && frm.doc.calculate_depreciation)); }, - opening_accumulated_depreciation: function(frm) { - erpnext.asset.set_accumulated_depreciation(frm); - }, - make_schedules_editable: function(frm) { if (frm.doc.finance_books) { var is_editable = frm.doc.finance_books.filter(d => d.depreciation_method == "Manual").length > 0 diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 1c2ef58b54da..974ea87fbae3 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -85,7 +85,10 @@ def prepare_depreciation_data(self, date_of_disposal=None, date_of_return=None): self.value_after_depreciation = 0 self.set_depreciation_rate() if not ( - self.get("schedules") and "Manual" in [d.depreciation_method for d in self.finance_books] + self.get("schedules") + and "Manual" in [d.depreciation_method for d in self.finance_books] + and self.get_doc_before_save().opening_accumulated_depreciation + == self.opening_accumulated_depreciation ): self.make_depreciation_schedule(date_of_disposal) self.set_accumulated_depreciation(date_of_disposal, date_of_return) From ae0318ef74f67b515593297744394cfae2d389eb Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 24 Feb 2023 17:50:00 +0530 Subject: [PATCH 218/355] fix: not able to repost gl entries (cherry picked from commit 7d10dd9ea8671c27709e88350c6799ba187c4929) --- erpnext/stock/doctype/purchase_receipt/purchase_receipt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index bb318f72526b..c8a4bd3d276e 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -473,7 +473,7 @@ def make_item_gl_entries(self, gl_entries, warehouse_account=None): ) divisional_loss = flt( - valuation_amount_as_per_doc - stock_value_diff, d.precision("base_net_amount") + valuation_amount_as_per_doc - flt(stock_value_diff), d.precision("base_net_amount") ) if divisional_loss: From dda6baea3ed18546ce8493ad8ccc519f280d5b29 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Sat, 25 Feb 2023 14:43:24 +0530 Subject: [PATCH 219/355] fix: incorrect acc depr amount if multiple FBs with straight line or manual method --- erpnext/assets/doctype/asset/asset.py | 52 +++++++++++++++++++++------ 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 974ea87fbae3..ee616f31e3b7 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -84,12 +84,7 @@ def prepare_depreciation_data(self, date_of_disposal=None, date_of_return=None): if self.calculate_depreciation: self.value_after_depreciation = 0 self.set_depreciation_rate() - if not ( - self.get("schedules") - and "Manual" in [d.depreciation_method for d in self.finance_books] - and self.get_doc_before_save().opening_accumulated_depreciation - == self.opening_accumulated_depreciation - ): + if self.should_prepare_depreciation_schedule(): self.make_depreciation_schedule(date_of_disposal) self.set_accumulated_depreciation(date_of_disposal, date_of_return) else: @@ -98,6 +93,39 @@ def prepare_depreciation_data(self, date_of_disposal=None, date_of_return=None): self.opening_accumulated_depreciation ) + def should_prepare_depreciation_schedule(self): + if not self.get("schedules"): + return True + + old_asset_doc = self.get_doc_before_save() + + if ( + old_asset_doc.gross_purchase_amount != self.gross_purchase_amount + or old_asset_doc.opening_accumulated_depreciation != self.opening_accumulated_depreciation + or old_asset_doc.number_of_depreciations_booked != self.number_of_depreciations_booked + ): + return True + + manual_fb_idx = -1 + for d in self.finance_books: + if d.depreciation_method == "Manual": + manual_fb_idx = d.idx + + if ( + manual_fb_idx == -1 + or old_asset_doc.finance_books[manual_fb_idx - 1].total_number_of_depreciations + != self.finance_books[manual_fb_idx - 1].total_number_of_depreciations + or old_asset_doc.finance_books[manual_fb_idx - 1].frequency_of_depreciation + != self.finance_books[manual_fb_idx - 1].frequency_of_depreciation + or old_asset_doc.finance_books[manual_fb_idx - 1].depreciation_start_date + != getdate(self.finance_books[manual_fb_idx - 1].depreciation_start_date) + or old_asset_doc.finance_books[manual_fb_idx - 1].expected_value_after_useful_life + != self.finance_books[manual_fb_idx - 1].expected_value_after_useful_life + ): + return True + + return False + def validate_item(self): item = frappe.get_cached_value( "Item", self.item_code, ["is_fixed_asset", "is_stock_item", "disabled"], as_dict=1 @@ -559,11 +587,7 @@ def has_only_one_finance_book(self): def set_accumulated_depreciation( self, date_of_disposal=None, date_of_return=None, ignore_booked_entry=False ): - straight_line_idx = [ - d.idx - for d in self.get("schedules") - if d.depreciation_method == "Straight Line" or d.depreciation_method == "Manual" - ] + straight_line_idx = [] finance_books = [] for i, d in enumerate(self.get("schedules")): @@ -571,6 +595,12 @@ def set_accumulated_depreciation( continue if int(d.finance_book_id) not in finance_books: + straight_line_idx = [ + s.idx + for s in self.get("schedules") + if s.finance_book_id == d.finance_book_id + and (s.depreciation_method == "Straight Line" or s.depreciation_method == "Manual") + ] accumulated_depreciation = flt(self.opening_accumulated_depreciation) value_after_depreciation = flt( self.get("finance_books")[cint(d.finance_book_id) - 1].value_after_depreciation From 75386e3653657ec26d444b73e3032cbf51f123c3 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Sat, 25 Feb 2023 21:17:18 +0530 Subject: [PATCH 220/355] chore: should prepare schedule if not draft --- erpnext/assets/doctype/asset/asset.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index ee616f31e3b7..e981bf682fd7 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -99,6 +99,9 @@ def should_prepare_depreciation_schedule(self): old_asset_doc = self.get_doc_before_save() + if not old_asset_doc: + return True + if ( old_asset_doc.gross_purchase_amount != self.gross_purchase_amount or old_asset_doc.opening_accumulated_depreciation != self.opening_accumulated_depreciation From d56ca011fef658c4030e3c326bc5658c86100716 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Sun, 26 Feb 2023 15:03:16 +0530 Subject: [PATCH 221/355] chore: refactor long if conditions --- erpnext/assets/doctype/asset/asset.py | 30 +++++++++++++++------------ 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index e981bf682fd7..9db406585068 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -102,29 +102,33 @@ def should_prepare_depreciation_schedule(self): if not old_asset_doc: return True - if ( + have_asset_details_been_modified = ( old_asset_doc.gross_purchase_amount != self.gross_purchase_amount or old_asset_doc.opening_accumulated_depreciation != self.opening_accumulated_depreciation or old_asset_doc.number_of_depreciations_booked != self.number_of_depreciations_booked - ): + ) + + if have_asset_details_been_modified: return True manual_fb_idx = -1 for d in self.finance_books: if d.depreciation_method == "Manual": - manual_fb_idx = d.idx + manual_fb_idx = d.idx - 1 - if ( + no_manual_depr_or_have_manual_depr_details_been_modified = ( manual_fb_idx == -1 - or old_asset_doc.finance_books[manual_fb_idx - 1].total_number_of_depreciations - != self.finance_books[manual_fb_idx - 1].total_number_of_depreciations - or old_asset_doc.finance_books[manual_fb_idx - 1].frequency_of_depreciation - != self.finance_books[manual_fb_idx - 1].frequency_of_depreciation - or old_asset_doc.finance_books[manual_fb_idx - 1].depreciation_start_date - != getdate(self.finance_books[manual_fb_idx - 1].depreciation_start_date) - or old_asset_doc.finance_books[manual_fb_idx - 1].expected_value_after_useful_life - != self.finance_books[manual_fb_idx - 1].expected_value_after_useful_life - ): + or old_asset_doc.finance_books[manual_fb_idx].total_number_of_depreciations + != self.finance_books[manual_fb_idx].total_number_of_depreciations + or old_asset_doc.finance_books[manual_fb_idx].frequency_of_depreciation + != self.finance_books[manual_fb_idx].frequency_of_depreciation + or old_asset_doc.finance_books[manual_fb_idx].depreciation_start_date + != getdate(self.finance_books[manual_fb_idx].depreciation_start_date) + or old_asset_doc.finance_books[manual_fb_idx].expected_value_after_useful_life + != self.finance_books[manual_fb_idx].expected_value_after_useful_life + ) + + if no_manual_depr_or_have_manual_depr_details_been_modified: return True return False From 3ea90ee5cb6dfe83c84804e1d0a062745ce9e667 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Fri, 24 Feb 2023 14:11:53 +0530 Subject: [PATCH 222/355] fix: permission error while calling get_work_order_items (cherry picked from commit b6bad728cdff7fd79f175dbd5b631f9bd5234ed7) --- .../doctype/sales_order/sales_order.js | 23 ++-- .../doctype/sales_order/sales_order.py | 102 ++++++++++-------- 2 files changed, 66 insertions(+), 59 deletions(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js index fb64772479b5..ee0752549daf 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.js +++ b/erpnext/selling/doctype/sales_order/sales_order.js @@ -309,9 +309,12 @@ erpnext.selling.SalesOrderController = class SalesOrderController extends erpnex make_work_order() { var me = this; - this.frm.call({ - doc: this.frm.doc, - method: 'get_work_order_items', + me.frm.call({ + method: "erpnext.selling.doctype.sales_order.sales_order.get_work_order_items", + args: { + sales_order: this.frm.docname, + }, + freeze: true, callback: function(r) { if(!r.message) { frappe.msgprint({ @@ -321,14 +324,7 @@ erpnext.selling.SalesOrderController = class SalesOrderController extends erpnex }); return; } - else if(!r.message) { - frappe.msgprint({ - title: __('Work Order not created'), - message: __('Work Order already created for all items with BOM'), - indicator: 'orange' - }); - return; - } else { + else { const fields = [{ label: 'Items', fieldtype: 'Table', @@ -429,9 +425,9 @@ erpnext.selling.SalesOrderController = class SalesOrderController extends erpnex make_raw_material_request() { var me = this; this.frm.call({ - doc: this.frm.doc, - method: 'get_work_order_items', + method: "erpnext.selling.doctype.sales_order.sales_order.get_work_order_items", args: { + sales_order: this.frm.docname, for_raw_material_request: 1 }, callback: function(r) { @@ -450,6 +446,7 @@ erpnext.selling.SalesOrderController = class SalesOrderController extends erpnex } make_raw_material_request_dialog(r) { + var me = this; var fields = [ {fieldtype:'Check', fieldname:'include_exploded_items', label: __('Include Exploded Items')}, diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index ca6a51a6f36f..385d0f3a5856 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -6,11 +6,12 @@ import frappe import frappe.utils -from frappe import _ +from frappe import _, qb from frappe.contacts.doctype.address.address import get_company_address from frappe.desk.notifications import clear_doctype_notifications from frappe.model.mapper import get_mapped_doc from frappe.model.utils import get_fetch_values +from frappe.query_builder.functions import Sum from frappe.utils import add_days, cint, cstr, flt, get_link_to_form, getdate, nowdate, strip_html from erpnext.accounts.doctype.sales_invoice.sales_invoice import ( @@ -414,51 +415,6 @@ def set_indicator(self): self.indicator_color = "green" self.indicator_title = _("Paid") - @frappe.whitelist() - def get_work_order_items(self, for_raw_material_request=0): - """Returns items with BOM that already do not have a linked work order""" - items = [] - item_codes = [i.item_code for i in self.items] - product_bundle_parents = [ - pb.new_item_code - for pb in frappe.get_all( - "Product Bundle", {"new_item_code": ["in", item_codes]}, ["new_item_code"] - ) - ] - - for table in [self.items, self.packed_items]: - for i in table: - bom = get_default_bom(i.item_code) - stock_qty = i.qty if i.doctype == "Packed Item" else i.stock_qty - - if not for_raw_material_request: - total_work_order_qty = flt( - frappe.db.sql( - """select sum(qty) from `tabWork Order` - where production_item=%s and sales_order=%s and sales_order_item = %s and docstatus<2""", - (i.item_code, self.name, i.name), - )[0][0] - ) - pending_qty = stock_qty - total_work_order_qty - else: - pending_qty = stock_qty - - if pending_qty and i.item_code not in product_bundle_parents: - items.append( - dict( - name=i.name, - item_code=i.item_code, - description=i.description, - bom=bom or "", - warehouse=i.warehouse, - pending_qty=pending_qty, - required_qty=pending_qty if for_raw_material_request else 0, - sales_order_item=i.name, - ) - ) - - return items - def on_recurring(self, reference_doc, auto_repeat_doc): def _get_delivery_date(ref_doc_delivery_date, red_doc_transaction_date, transaction_date): delivery_date = auto_repeat_doc.get_next_schedule_date(schedule_date=ref_doc_delivery_date) @@ -1350,3 +1306,57 @@ def update_produced_qty_in_so_item(sales_order, sales_order_item): return frappe.db.set_value("Sales Order Item", sales_order_item, "produced_qty", total_produced_qty) + + +@frappe.whitelist() +def get_work_order_items(sales_order, for_raw_material_request=0): + """Returns items with BOM that already do not have a linked work order""" + if sales_order: + so = frappe.get_doc("Sales Order", sales_order) + + wo = qb.DocType("Work Order") + + items = [] + item_codes = [i.item_code for i in so.items] + product_bundle_parents = [ + pb.new_item_code + for pb in frappe.get_all( + "Product Bundle", {"new_item_code": ["in", item_codes]}, ["new_item_code"] + ) + ] + + for table in [so.items, so.packed_items]: + for i in table: + bom = get_default_bom(i.item_code) + stock_qty = i.qty if i.doctype == "Packed Item" else i.stock_qty + + if not for_raw_material_request: + total_work_order_qty = flt( + qb.from_(wo) + .select(Sum(wo.qty)) + .where( + (wo.production_item == i.item_code) + & (wo.sales_order == so.name) * (wo.sales_order_item == i.name) + & (wo.docstatus.lte(2)) + ) + .run()[0][0] + ) + pending_qty = stock_qty - total_work_order_qty + else: + pending_qty = stock_qty + + if pending_qty and i.item_code not in product_bundle_parents: + items.append( + dict( + name=i.name, + item_code=i.item_code, + description=i.description, + bom=bom or "", + warehouse=i.warehouse, + pending_qty=pending_qty, + required_qty=pending_qty if for_raw_material_request else 0, + sales_order_item=i.name, + ) + ) + + return items From 17198844c0b36aaff667d5cb676e5e95395d3847 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Fri, 24 Feb 2023 20:21:58 +0530 Subject: [PATCH 223/355] fix(test): use standalone method to fetch work orders from SO (cherry picked from commit a11d3327dfb5b016b2ff7ca33a5a0431d6e91019) --- .../selling/doctype/sales_order/test_sales_order.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py index d4d7c58eb823..627914f0c7ea 100644 --- a/erpnext/selling/doctype/sales_order/test_sales_order.py +++ b/erpnext/selling/doctype/sales_order/test_sales_order.py @@ -1217,6 +1217,8 @@ def test_terms_copied(self): self.assertTrue(si.get("payment_schedule")) def test_make_work_order(self): + from erpnext.selling.doctype.sales_order.sales_order import get_work_order_items + # Make a new Sales Order so = make_sales_order( **{ @@ -1230,7 +1232,7 @@ def test_make_work_order(self): # Raise Work Orders po_items = [] so_item_name = {} - for item in so.get_work_order_items(): + for item in get_work_order_items(so.name): po_items.append( { "warehouse": item.get("warehouse"), @@ -1448,6 +1450,7 @@ def test_work_order_pop_up_from_sales_order(self): from erpnext.controllers.item_variant import create_variant from erpnext.manufacturing.doctype.production_plan.test_production_plan import make_bom + from erpnext.selling.doctype.sales_order.sales_order import get_work_order_items make_item( # template item "Test-WO-Tshirt", @@ -1487,7 +1490,7 @@ def test_work_order_pop_up_from_sales_order(self): ] } ) - wo_items = so.get_work_order_items() + wo_items = get_work_order_items(so.name) self.assertEqual(wo_items[0].get("item_code"), "Test-WO-Tshirt-R") self.assertEqual(wo_items[0].get("bom"), red_var_bom.name) @@ -1497,6 +1500,8 @@ def test_work_order_pop_up_from_sales_order(self): self.assertEqual(wo_items[1].get("bom"), template_bom.name) def test_request_for_raw_materials(self): + from erpnext.selling.doctype.sales_order.sales_order import get_work_order_items + item = make_item( "_Test Finished Item", { @@ -1529,7 +1534,7 @@ def test_request_for_raw_materials(self): so = make_sales_order(**{"item_list": [{"item_code": item.item_code, "qty": 1, "rate": 1000}]}) so.submit() mr_dict = frappe._dict() - items = so.get_work_order_items(1) + items = get_work_order_items(so.name, 1) mr_dict["items"] = items mr_dict["include_exploded_items"] = 0 mr_dict["ignore_existing_ordered_qty"] = 1 From 88a781fa431d242e008f1bb7cc2ff072c0e495bc Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 27 Feb 2023 11:50:45 +0530 Subject: [PATCH 224/355] fix: german translations (#31732) fix: german translations (#31732) (cherry picked from commit 6b510546ae52ee62da359f53df8204de0b160e34) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- erpnext/accounts/doctype/sales_invoice/sales_invoice.js | 2 +- erpnext/translations/de.csv | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js index 37f42c114cca..47e3f9b93548 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js @@ -1047,7 +1047,7 @@ var select_loyalty_program = function(frm, loyalty_programs) { ] }); - dialog.set_primary_action(__("Set"), function() { + dialog.set_primary_action(__("Set Loyalty Program"), function() { dialog.hide(); return frappe.call({ method: "frappe.client.set_value", diff --git a/erpnext/translations/de.csv b/erpnext/translations/de.csv index 95063d7957be..c474698d261e 100644 --- a/erpnext/translations/de.csv +++ b/erpnext/translations/de.csv @@ -4053,7 +4053,7 @@ Server Error,Serverfehler, Service Level Agreement has been changed to {0}.,Service Level Agreement wurde in {0} geändert., Service Level Agreement was reset.,Service Level Agreement wurde zurückgesetzt., Service Level Agreement with Entity Type {0} and Entity {1} already exists.,Service Level Agreement mit Entitätstyp {0} und Entität {1} ist bereits vorhanden., -Set,Menge, +Set Loyalty Program,Treueprogramm eintragen, Set Meta Tags,Festlegen von Meta-Tags, Set {0} in company {1},{0} in Firma {1} festlegen, Setup,Einstellungen, @@ -4233,10 +4233,8 @@ To date cannot be before From date,Bis-Datum kann nicht vor Von-Datum liegen, Write Off,Abschreiben, {0} Created,{0} Erstellt, Email Id,E-Mail-ID, -No,Kein, Reference Doctype,Referenz-DocType, User Id,Benutzeridentifikation, -Yes,Ja, Actual ,Tatsächlich, Add to cart,In den Warenkorb legen, Budget,Budget, From dc6ae46d591d31dda9c44ffadb56650c0cbf01e1 Mon Sep 17 00:00:00 2001 From: Brian Pond <19827963+brian-pond@users.noreply.github.com> Date: Sat, 25 Feb 2023 12:41:23 -0800 Subject: [PATCH 225/355] fix: Remove missing DocField in fetch_from (cherry picked from commit 83f3e317e1ad29a1c8303a56070d601c3d102608) --- .../maintenance_visit_purpose.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json b/erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json index 158f143ae866..ba0535555319 100644 --- a/erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json +++ b/erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json @@ -64,8 +64,6 @@ "fieldtype": "Section Break" }, { - "fetch_from": "prevdoc_detail_docname.sales_person", - "fetch_if_empty": 1, "fieldname": "service_person", "fieldtype": "Link", "in_list_view": 1, @@ -110,13 +108,15 @@ "idx": 1, "istable": 1, "links": [], - "modified": "2021-05-27 17:47:21.474282", + "modified": "2023-02-27 11:09:33.114458", "modified_by": "Administrator", "module": "Maintenance", "name": "Maintenance Visit Purpose", + "naming_rule": "Random", "owner": "Administrator", "permissions": [], "sort_field": "modified", "sort_order": "DESC", + "states": [], "track_changes": 1 } \ No newline at end of file From 4d92d469e4c9ff2cfa7f5825dc93a9c53f3e232a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 27 Feb 2023 12:19:12 +0530 Subject: [PATCH 226/355] fix: currency in coa import (#34174) * fix: currency in coa import (cherry picked from commit 19c0b7a5234b017c7a15e8a7b149d386f85180e6) * chore: change column label (cherry picked from commit e3c000d0bec35542b30811aa3f2f16782210770a) --------- Co-authored-by: vishnu --- .../chart_of_accounts/chart_of_accounts.py | 15 ++++++++++++++- .../chart_of_accounts_importer.py | 6 +++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py b/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py index 947b4853e859..216135a39753 100644 --- a/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py +++ b/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py @@ -29,6 +29,7 @@ def _import_accounts(children, parent, root_type, root_account=False): "root_type", "is_group", "tax_rate", + "account_currency", ]: account_number = cstr(child.get("account_number")).strip() @@ -95,7 +96,17 @@ def identify_is_group(child): is_group = child.get("is_group") elif len( set(child.keys()) - - set(["account_name", "account_type", "root_type", "is_group", "tax_rate", "account_number"]) + - set( + [ + "account_name", + "account_type", + "root_type", + "is_group", + "tax_rate", + "account_number", + "account_currency", + ] + ) ): is_group = 1 else: @@ -185,6 +196,7 @@ def get_account_tree_from_existing_company(existing_company): "root_type", "tax_rate", "account_number", + "account_currency", ], order_by="lft, rgt", ) @@ -267,6 +279,7 @@ def _import_accounts(children, parent): "root_type", "is_group", "tax_rate", + "account_currency", ]: continue diff --git a/erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py b/erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py index 2ffbd3087f7d..c676c97616c0 100644 --- a/erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py +++ b/erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py @@ -36,7 +36,7 @@ def validate_columns(data): no_of_columns = max([len(d) for d in data]) - if no_of_columns > 7: + if no_of_columns > 8: frappe.throw( _("More columns found than expected. Please compare the uploaded file with standard template"), title=(_("Wrong Template")), @@ -233,6 +233,7 @@ def return_parent(data, child): is_group, account_type, root_type, + account_currency, ) = i if not account_name: @@ -253,6 +254,8 @@ def return_parent(data, child): charts_map[account_name]["account_type"] = account_type if root_type: charts_map[account_name]["root_type"] = root_type + if account_currency: + charts_map[account_name]["account_currency"] = account_currency path = return_parent(data, account_name)[::-1] paths.append(path) # List of path is created line_no += 1 @@ -315,6 +318,7 @@ def get_template(template_type): "Is Group", "Account Type", "Root Type", + "Account Currency", ] writer = UnicodeWriter() writer.writerow(fields) From 80e23d035e388d9790ace84a740df948296cf7e1 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 23 Feb 2023 12:26:19 +0530 Subject: [PATCH 227/355] fix: set `from_warehouse` and `to_warehouse` while mapping SE (cherry picked from commit c09a61f360bad2faa12ac1118665d71203061361) --- erpnext/stock/doctype/material_request/material_request.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py index 1fe2ee5504c6..bcf6dd79d8de 100644 --- a/erpnext/stock/doctype/material_request/material_request.py +++ b/erpnext/stock/doctype/material_request/material_request.py @@ -590,6 +590,9 @@ def update_item(obj, target, source_parent): def set_missing_values(source, target): target.purpose = source.material_request_type + target.from_warehouse = source.set_from_warehouse + target.to_warehouse = source.set_warehouse + if source.job_card: target.purpose = "Material Transfer for Manufacture" @@ -725,6 +728,7 @@ def create_pick_list(source_name, target_doc=None): def make_in_transit_stock_entry(source_name, in_transit_warehouse): ste_doc = make_stock_entry(source_name) ste_doc.add_to_transit = 1 + ste_doc.to_warehouse = in_transit_warehouse for row in ste_doc.items: row.t_warehouse = in_transit_warehouse From db964e82567ead44147711ba9673474a39e700d3 Mon Sep 17 00:00:00 2001 From: Vishal Date: Tue, 14 Feb 2023 18:43:48 +0530 Subject: [PATCH 228/355] fix: multiple pos conversion issue resolved (cherry picked from commit 1de531e56e8820b19f3aa85cc194e7174dc4d678) --- erpnext/accounts/doctype/pos_invoice/pos_invoice.py | 6 +++--- erpnext/selling/page/point_of_sale/pos_controller.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py index 54a3e934b2dc..6331b6cca3fa 100644 --- a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py +++ b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py @@ -161,7 +161,7 @@ def validate_pos_reserved_batch_qty(self, item): bold_item_name = frappe.bold(item.item_name) bold_extra_batch_qty_needed = frappe.bold( - abs(available_batch_qty - reserved_batch_qty - item.qty) + abs(available_batch_qty - reserved_batch_qty - item.qty * item.conversion_factor) ) bold_invalid_batch_no = frappe.bold(item.batch_no) @@ -172,7 +172,7 @@ def validate_pos_reserved_batch_qty(self, item): ).format(item.idx, bold_invalid_batch_no, bold_item_name), title=_("Item Unavailable"), ) - elif (available_batch_qty - reserved_batch_qty - item.qty) < 0: + elif (available_batch_qty - reserved_batch_qty - item.qty * item.conversion_factor) < 0: frappe.throw( _( "Row #{}: Batch No. {} of item {} has less than required stock available, {} more required" @@ -246,7 +246,7 @@ def validate_stock_availablility(self): ), title=_("Item Unavailable"), ) - elif is_stock_item and flt(available_stock) < flt(d.qty): + elif is_stock_item and flt(available_stock) < flt(d.qty * d.conversion_factor): frappe.throw( _( "Row #{}: Stock quantity not enough for Item Code: {} under warehouse {}. Available quantity {}." diff --git a/erpnext/selling/page/point_of_sale/pos_controller.js b/erpnext/selling/page/point_of_sale/pos_controller.js index 595b9196e848..77d8fd8f403c 100644 --- a/erpnext/selling/page/point_of_sale/pos_controller.js +++ b/erpnext/selling/page/point_of_sale/pos_controller.js @@ -522,7 +522,7 @@ erpnext.PointOfSale.Controller = class { const from_selector = field === 'qty' && value === "+1"; if (from_selector) - value = flt(item_row.qty) + flt(value); + value = flt(item_row.qty * item_row.conversion_factor) + flt(value); if (item_row_exists) { if (field === 'qty') From 786eb97ab442d0671af800832cbf3ea863423871 Mon Sep 17 00:00:00 2001 From: Vishal Date: Thu, 23 Feb 2023 12:23:05 +0530 Subject: [PATCH 229/355] chore: minor changes added to code (cherry picked from commit 3ebe7d861d45a6e0b83bcf5df275923bb882c5e0) --- erpnext/accounts/doctype/pos_invoice/pos_invoice.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py index 6331b6cca3fa..16e885445afb 100644 --- a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py +++ b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py @@ -161,7 +161,7 @@ def validate_pos_reserved_batch_qty(self, item): bold_item_name = frappe.bold(item.item_name) bold_extra_batch_qty_needed = frappe.bold( - abs(available_batch_qty - reserved_batch_qty - item.qty * item.conversion_factor) + abs(available_batch_qty - reserved_batch_qty - item.stock_qty) ) bold_invalid_batch_no = frappe.bold(item.batch_no) @@ -172,7 +172,7 @@ def validate_pos_reserved_batch_qty(self, item): ).format(item.idx, bold_invalid_batch_no, bold_item_name), title=_("Item Unavailable"), ) - elif (available_batch_qty - reserved_batch_qty - item.qty * item.conversion_factor) < 0: + elif (available_batch_qty - reserved_batch_qty - item.stock_qty) < 0: frappe.throw( _( "Row #{}: Batch No. {} of item {} has less than required stock available, {} more required" @@ -650,7 +650,7 @@ def get_bundle_availability(bundle_item_code, warehouse): item_pos_reserved_qty = get_pos_reserved_qty(item.item_code, warehouse) available_qty = item_bin_qty - item_pos_reserved_qty - max_available_bundles = available_qty / item.qty + max_available_bundles = available_qty / item.stock_qty if bundle_bin_qty > max_available_bundles and frappe.get_value( "Item", item.item_code, "is_stock_item" ): From f812dbc52414eca3f5f311ce0c271a44d2b3105d Mon Sep 17 00:00:00 2001 From: Vishal Date: Thu, 23 Feb 2023 12:26:42 +0530 Subject: [PATCH 230/355] chore: minor change (cherry picked from commit a51bec02690120c55bd265bae23d34e113a652bd) --- erpnext/accounts/doctype/pos_invoice/pos_invoice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py index 16e885445afb..0af4c0ea4804 100644 --- a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py +++ b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py @@ -246,7 +246,7 @@ def validate_stock_availablility(self): ), title=_("Item Unavailable"), ) - elif is_stock_item and flt(available_stock) < flt(d.qty * d.conversion_factor): + elif is_stock_item and flt(available_stock) < flt(d.stock_qty): frappe.throw( _( "Row #{}: Stock quantity not enough for Item Code: {} under warehouse {}. Available quantity {}." From bbcd10161340b8a3ae9c10e01b18562bea67c0d4 Mon Sep 17 00:00:00 2001 From: Vishal Date: Tue, 28 Feb 2023 11:01:54 +0530 Subject: [PATCH 231/355] chore: minor changes in pos_controller (cherry picked from commit f18ae5856f0bd8594dd7141b2b85b7ab6a02497b) --- erpnext/selling/page/point_of_sale/pos_controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/selling/page/point_of_sale/pos_controller.js b/erpnext/selling/page/point_of_sale/pos_controller.js index 77d8fd8f403c..da798ab6d2d3 100644 --- a/erpnext/selling/page/point_of_sale/pos_controller.js +++ b/erpnext/selling/page/point_of_sale/pos_controller.js @@ -522,7 +522,7 @@ erpnext.PointOfSale.Controller = class { const from_selector = field === 'qty' && value === "+1"; if (from_selector) - value = flt(item_row.qty * item_row.conversion_factor) + flt(value); + value = flt(item_row.stock_qty) + flt(value); if (item_row_exists) { if (field === 'qty') From db033c686229c12671062404efb409c17100635f Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 22 Feb 2023 12:30:09 +0530 Subject: [PATCH 232/355] feat: adjust purchase receipt valuation rate as per purchase invoice rate (cherry picked from commit eab775ef3222c2948fa643436612816f01cb52bb) --- .../purchase_invoice/purchase_invoice.py | 35 +++++++++++++- .../buying_settings/buying_settings.json | 11 ++++- erpnext/controllers/buying_controller.py | 5 +- .../purchase_receipt/purchase_receipt.py | 47 ++++++++++++++++++- .../purchase_receipt_item.json | 11 ++++- 5 files changed, 103 insertions(+), 6 deletions(-) diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py index 3bac68a8f65c..435dd2461d14 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -528,6 +528,32 @@ def on_submit(self): self.update_advance_tax_references() self.process_common_party_accounting() + self.adjust_incoming_rate_of_purchase_receipt() + + def adjust_incoming_rate_of_purchase_receipt(self): + if ( + not frappe.db.get_single_value( + "Buying Settings", "adjust_incoming_rate_based_on_purchase_invoice_rate" + ) + and self.is_subcontracted + ): + return + + purchase_receipts = [] + for item in self.items: + if item.purchase_receipt and item.purchase_receipt not in purchase_receipts: + purchase_receipts.append(item.purchase_receipt) + + for purchase_receipt in purchase_receipts: + doc = frappe.get_doc("Purchase Receipt", purchase_receipt) + doc.docstatus = 2 + doc.update_stock_ledger(allow_negative_stock=True, via_landed_cost_voucher=True) + doc.make_gl_entries_on_cancel() + + doc.docstatus = 1 + doc.update_stock_ledger(allow_negative_stock=True, via_landed_cost_voucher=True) + doc.make_gl_entries() + doc.repost_future_sle_and_gle() def make_gl_entries(self, gl_entries=None, from_repost=False): if not gl_entries: @@ -1423,6 +1449,7 @@ def on_cancel(self): "Tax Withheld Vouchers", ) self.update_advance_tax_references(cancel=1) + self.adjust_incoming_rate_of_purchase_receipt() def update_project(self): project_list = [] @@ -1485,11 +1512,17 @@ def update_billing_status_in_pr(self, update_modified=True): if po_details: updated_pr += update_billed_amount_based_on_po(po_details, update_modified) + adjust_incoming_rate = frappe.db.get_single_value( + "Buying Settings", "adjust_incoming_rate_based_on_purchase_invoice_rate" + ) + for pr in set(updated_pr): from erpnext.stock.doctype.purchase_receipt.purchase_receipt import update_billing_percentage pr_doc = frappe.get_doc("Purchase Receipt", pr) - update_billing_percentage(pr_doc, update_modified=update_modified) + update_billing_percentage( + pr_doc, update_modified=update_modified, adjust_incoming_rate=adjust_incoming_rate + ) def get_pr_details_billed_amt(self): # Get billed amount based on purchase receipt item reference (pr_detail) in purchase invoice diff --git a/erpnext/buying/doctype/buying_settings/buying_settings.json b/erpnext/buying/doctype/buying_settings/buying_settings.json index 652dcf0d43c4..7bbe89a063b4 100644 --- a/erpnext/buying/doctype/buying_settings/buying_settings.json +++ b/erpnext/buying/doctype/buying_settings/buying_settings.json @@ -18,6 +18,7 @@ "pr_required", "column_break_12", "maintain_same_rate", + "adjust_incoming_rate_based_on_purchase_invoice_rate", "allow_multiple_items", "bill_for_rejected_quantity_in_purchase_invoice", "disable_last_purchase_rate", @@ -147,6 +148,14 @@ "fieldname": "show_pay_button", "fieldtype": "Check", "label": "Show Pay Button in Purchase Order Portal" + }, + { + "default": "0", + "depends_on": "eval: !doc.maintain_same_rate", + "description": "Users can enable the checkbox If they want to adjust the incoming rate (set using purchase receipt) based on the purchase invoice rate.", + "fieldname": "adjust_incoming_rate_based_on_purchase_invoice_rate", + "fieldtype": "Check", + "label": "Adjust Incoming Rate Based on Purchase Invoice Rate" } ], "icon": "fa fa-cog", @@ -154,7 +163,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2023-02-15 14:42:10.200679", + "modified": "2023-02-20 14:25:58.544143", "modified_by": "Administrator", "module": "Buying", "name": "Buying Settings", diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py index cf267716d585..aa050beec4ee 100644 --- a/erpnext/controllers/buying_controller.py +++ b/erpnext/controllers/buying_controller.py @@ -269,7 +269,10 @@ def update_valuation_rate(self, reset_outgoing_rate=True): ) / qty_in_stock_uom else: item.valuation_rate = ( - item.base_net_amount + item.item_tax_amount + flt(item.landed_cost_voucher_amount) + item.base_net_amount + + item.item_tax_amount + + flt(item.landed_cost_voucher_amount) + + flt(item.get("adjust_incoming_rate")) ) / qty_in_stock_uom else: item.valuation_rate = 0.0 diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index c8a4bd3d276e..0f3224cffb39 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -293,6 +293,7 @@ def make_item_gl_entries(self, gl_entries, warehouse_account=None): get_purchase_document_details, ) + stock_rbnb = None if erpnext.is_perpetual_inventory_enabled(self.company): stock_rbnb = self.get_company_default("stock_received_but_not_billed") landed_cost_entries = get_item_account_wise_additional_cost(self.name) @@ -450,6 +451,21 @@ def make_item_gl_entries(self, gl_entries, warehouse_account=None): item=d, ) + if d.adjust_incoming_rate and stock_rbnb: + account_currency = get_account_currency(stock_rbnb) + self.add_gl_entry( + gl_entries=gl_entries, + account=stock_rbnb, + cost_center=d.cost_center, + debit=0.0, + credit=flt(d.adjust_incoming_rate), + remarks=_("Adjustment based on Purchase Invoice rate"), + against_account=warehouse_account_name, + account_currency=account_currency, + project=d.project, + item=d, + ) + # sub-contracting warehouse if flt(d.rm_supp_cost) and warehouse_account.get(self.supplier_warehouse): self.add_gl_entry( @@ -470,6 +486,7 @@ def make_item_gl_entries(self, gl_entries, warehouse_account=None): + flt(d.landed_cost_voucher_amount) + flt(d.rm_supp_cost) + flt(d.item_tax_amount) + + flt(d.adjust_incoming_rate) ) divisional_loss = flt( @@ -765,7 +782,7 @@ def update_billing_status(self, update_modified=True): updated_pr += update_billed_amount_based_on_po(po_details, update_modified) for pr in set(updated_pr): - pr_doc = self if (pr == self.name) else frappe.get_cached_doc("Purchase Receipt", pr) + pr_doc = self if (pr == self.name) else frappe.get_doc("Purchase Receipt", pr) update_billing_percentage(pr_doc, update_modified=update_modified) self.load_from_db() @@ -881,7 +898,7 @@ def get_billed_amount_against_po(po_items): return {d.po_detail: flt(d.billed_amt) for d in query} -def update_billing_percentage(pr_doc, update_modified=True): +def update_billing_percentage(pr_doc, update_modified=True, adjust_incoming_rate=False): # Reload as billed amount was set in db directly pr_doc.load_from_db() @@ -897,6 +914,12 @@ def update_billing_percentage(pr_doc, update_modified=True): total_amount += total_billable_amount total_billed_amount += flt(item.billed_amt) + if adjust_incoming_rate: + adjusted_amt = 0.0 + if item.billed_amt and item.amount: + adjusted_amt = flt(item.billed_amt) - flt(item.amount) + + item.db_set("adjust_incoming_rate", adjusted_amt, update_modified=False) percent_billed = round(100 * (total_billed_amount / (total_amount or 1)), 6) pr_doc.db_set("per_billed", percent_billed) @@ -906,6 +929,26 @@ def update_billing_percentage(pr_doc, update_modified=True): pr_doc.set_status(update=True) pr_doc.notify_update() + if adjust_incoming_rate: + adjust_incoming_rate_for_pr(pr_doc) + + +def adjust_incoming_rate_for_pr(doc): + doc.update_valuation_rate(reset_outgoing_rate=False) + + for item in doc.get("items"): + item.db_update() + + doc.docstatus = 2 + doc.update_stock_ledger(allow_negative_stock=True, via_landed_cost_voucher=True) + doc.make_gl_entries_on_cancel() + + # update stock & gl entries for submit state of PR + doc.docstatus = 1 + doc.update_stock_ledger(allow_negative_stock=True, via_landed_cost_voucher=True) + doc.make_gl_entries() + doc.repost_future_sle_and_gle() + def get_item_wise_returned_qty(pr_doc): items = [d.name for d in pr_doc.items] 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 7a350b9e446b..e12c5834619b 100644 --- a/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json +++ b/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json @@ -69,6 +69,7 @@ "item_tax_amount", "rm_supp_cost", "landed_cost_voucher_amount", + "adjust_incoming_rate", "billed_amt", "warehouse_and_reference", "warehouse", @@ -1007,12 +1008,20 @@ "fieldtype": "Check", "label": "Has Item Scanned", "read_only": 1 + }, + { + "fieldname": "adjust_incoming_rate", + "fieldtype": "Currency", + "label": "Adjust Incoming Rate (Purchase Invoice)", + "no_copy": 1, + "print_hide": 1, + "read_only": 1 } ], "idx": 1, "istable": 1, "links": [], - "modified": "2023-01-18 15:48:58.114923", + "modified": "2023-02-28 12:05:59.732266", "modified_by": "Administrator", "module": "Stock", "name": "Purchase Receipt Item", From 3ea1c73c07309752458ee75e0dfa741a13976e45 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 28 Feb 2023 14:39:05 +0530 Subject: [PATCH 233/355] test: added test cases (cherry picked from commit 8e865537170251e8a788a73034345f12b90017d1) --- .../purchase_invoice/purchase_invoice.py | 27 ------ .../purchase_invoice/test_purchase_invoice.py | 88 +++++++++++++++++++ .../buying_settings/buying_settings.py | 7 ++ 3 files changed, 95 insertions(+), 27 deletions(-) diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py index 435dd2461d14..0036abdc59d8 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -528,32 +528,6 @@ def on_submit(self): self.update_advance_tax_references() self.process_common_party_accounting() - self.adjust_incoming_rate_of_purchase_receipt() - - def adjust_incoming_rate_of_purchase_receipt(self): - if ( - not frappe.db.get_single_value( - "Buying Settings", "adjust_incoming_rate_based_on_purchase_invoice_rate" - ) - and self.is_subcontracted - ): - return - - purchase_receipts = [] - for item in self.items: - if item.purchase_receipt and item.purchase_receipt not in purchase_receipts: - purchase_receipts.append(item.purchase_receipt) - - for purchase_receipt in purchase_receipts: - doc = frappe.get_doc("Purchase Receipt", purchase_receipt) - doc.docstatus = 2 - doc.update_stock_ledger(allow_negative_stock=True, via_landed_cost_voucher=True) - doc.make_gl_entries_on_cancel() - - doc.docstatus = 1 - doc.update_stock_ledger(allow_negative_stock=True, via_landed_cost_voucher=True) - doc.make_gl_entries() - doc.repost_future_sle_and_gle() def make_gl_entries(self, gl_entries=None, from_repost=False): if not gl_entries: @@ -1449,7 +1423,6 @@ def on_cancel(self): "Tax Withheld Vouchers", ) self.update_advance_tax_references(cancel=1) - self.adjust_incoming_rate_of_purchase_receipt() def update_project(self): project_list = [] diff --git a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py index f901257ccf63..d20eddfc96f7 100644 --- a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py @@ -1523,6 +1523,94 @@ def test_provisional_accounting_entry(self): company.enable_provisional_accounting_for_non_stock_items = 0 company.save() + def test_adjust_incoming_rate(self): + frappe.db.set_single_value("Buying Settings", "maintain_same_rate", 0) + + frappe.db.set_single_value( + "Buying Settings", "adjust_incoming_rate_based_on_purchase_invoice_rate", 1 + ) + + # Increase the cost of the item + + pr = make_purchase_receipt(qty=1, rate=100) + + stock_value_difference = frappe.db.get_value( + "Stock Ledger Entry", + {"voucher_type": "Purchase Receipt", "voucher_no": pr.name}, + "stock_value_difference", + ) + self.assertEqual(stock_value_difference, 100) + + pi = create_purchase_invoice_from_receipt(pr.name) + for row in pi.items: + row.rate = 150 + + pi.save() + pi.submit() + + stock_value_difference = frappe.db.get_value( + "Stock Ledger Entry", + {"voucher_type": "Purchase Receipt", "voucher_no": pr.name}, + "stock_value_difference", + ) + self.assertEqual(stock_value_difference, 150) + + # Reduce the cost of the item + + pr = make_purchase_receipt(qty=1, rate=100) + + stock_value_difference = frappe.db.get_value( + "Stock Ledger Entry", + {"voucher_type": "Purchase Receipt", "voucher_no": pr.name}, + "stock_value_difference", + ) + self.assertEqual(stock_value_difference, 100) + + pi = create_purchase_invoice_from_receipt(pr.name) + for row in pi.items: + row.rate = 50 + + pi.save() + pi.submit() + + stock_value_difference = frappe.db.get_value( + "Stock Ledger Entry", + {"voucher_type": "Purchase Receipt", "voucher_no": pr.name}, + "stock_value_difference", + ) + self.assertEqual(stock_value_difference, 50) + + frappe.db.set_single_value( + "Buying Settings", "adjust_incoming_rate_based_on_purchase_invoice_rate", 0 + ) + + # Don't adjust incoming rate + + pr = make_purchase_receipt(qty=1, rate=100) + + stock_value_difference = frappe.db.get_value( + "Stock Ledger Entry", + {"voucher_type": "Purchase Receipt", "voucher_no": pr.name}, + "stock_value_difference", + ) + self.assertEqual(stock_value_difference, 100) + + pi = create_purchase_invoice_from_receipt(pr.name) + for row in pi.items: + row.rate = 50 + + pi.save() + pi.submit() + + stock_value_difference = frappe.db.get_value( + "Stock Ledger Entry", + {"voucher_type": "Purchase Receipt", "voucher_no": pr.name}, + "stock_value_difference", + ) + self.assertEqual(stock_value_difference, 100) + + frappe.db.set_single_value("Buying Settings", "maintain_same_rate", 1) + def test_item_less_defaults(self): pi = frappe.new_doc("Purchase Invoice") diff --git a/erpnext/buying/doctype/buying_settings/buying_settings.py b/erpnext/buying/doctype/buying_settings/buying_settings.py index be1ebdeb64e5..d14ffc90ad7d 100644 --- a/erpnext/buying/doctype/buying_settings/buying_settings.py +++ b/erpnext/buying/doctype/buying_settings/buying_settings.py @@ -21,3 +21,10 @@ def validate(self): self.get("supp_master_name") == "Naming Series", hide_name_field=False, ) + + def before_save(self): + self.check_maintain_same_rate() + + def check_maintain_same_rate(self): + if self.maintain_same_rate: + self.adjust_incoming_rate_based_on_purchase_invoice_rate = 0 From 5e9f1dfbb3f136aa70f6bb476d90aae77790d80d Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 28 Feb 2023 15:47:45 +0530 Subject: [PATCH 234/355] fix: labels name (cherry picked from commit a8445da02aa48dfa2a44e426074c59f4f04e5356) --- .../accounts/doctype/purchase_invoice/purchase_invoice.py | 2 +- .../doctype/purchase_invoice/test_purchase_invoice.py | 4 ++-- .../buying/doctype/buying_settings/buying_settings.json | 8 ++++---- erpnext/buying/doctype/buying_settings/buying_settings.py | 2 +- erpnext/controllers/buying_controller.py | 2 +- .../stock/doctype/purchase_receipt/purchase_receipt.py | 8 ++++---- .../purchase_receipt_item/purchase_receipt_item.json | 8 ++++---- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py index 0036abdc59d8..ae707ab14355 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -1486,7 +1486,7 @@ def update_billing_status_in_pr(self, update_modified=True): updated_pr += update_billed_amount_based_on_po(po_details, update_modified) adjust_incoming_rate = frappe.db.get_single_value( - "Buying Settings", "adjust_incoming_rate_based_on_purchase_invoice_rate" + "Buying Settings", "set_landed_cost_based_on_purchase_invoice_rate" ) for pr in set(updated_pr): diff --git a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py index d20eddfc96f7..a6d7df6971f9 100644 --- a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py @@ -1527,7 +1527,7 @@ def test_adjust_incoming_rate(self): frappe.db.set_single_value("Buying Settings", "maintain_same_rate", 0) frappe.db.set_single_value( - "Buying Settings", "adjust_incoming_rate_based_on_purchase_invoice_rate", 1 + "Buying Settings", "set_landed_cost_based_on_purchase_invoice_rate", 1 ) # Increase the cost of the item @@ -1581,7 +1581,7 @@ def test_adjust_incoming_rate(self): self.assertEqual(stock_value_difference, 50) frappe.db.set_single_value( - "Buying Settings", "adjust_incoming_rate_based_on_purchase_invoice_rate", 0 + "Buying Settings", "set_landed_cost_based_on_purchase_invoice_rate", 0 ) # Don't adjust incoming rate diff --git a/erpnext/buying/doctype/buying_settings/buying_settings.json b/erpnext/buying/doctype/buying_settings/buying_settings.json index 7bbe89a063b4..95857e4604db 100644 --- a/erpnext/buying/doctype/buying_settings/buying_settings.json +++ b/erpnext/buying/doctype/buying_settings/buying_settings.json @@ -18,7 +18,7 @@ "pr_required", "column_break_12", "maintain_same_rate", - "adjust_incoming_rate_based_on_purchase_invoice_rate", + "set_landed_cost_based_on_purchase_invoice_rate", "allow_multiple_items", "bill_for_rejected_quantity_in_purchase_invoice", "disable_last_purchase_rate", @@ -153,9 +153,9 @@ "default": "0", "depends_on": "eval: !doc.maintain_same_rate", "description": "Users can enable the checkbox If they want to adjust the incoming rate (set using purchase receipt) based on the purchase invoice rate.", - "fieldname": "adjust_incoming_rate_based_on_purchase_invoice_rate", + "fieldname": "set_landed_cost_based_on_purchase_invoice_rate", "fieldtype": "Check", - "label": "Adjust Incoming Rate Based on Purchase Invoice Rate" + "label": "Set Landed Cost Based on Purchase Invoice Rate" } ], "icon": "fa fa-cog", @@ -163,7 +163,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2023-02-20 14:25:58.544143", + "modified": "2023-02-28 15:41:32.686805", "modified_by": "Administrator", "module": "Buying", "name": "Buying Settings", diff --git a/erpnext/buying/doctype/buying_settings/buying_settings.py b/erpnext/buying/doctype/buying_settings/buying_settings.py index d14ffc90ad7d..4680a889d3a0 100644 --- a/erpnext/buying/doctype/buying_settings/buying_settings.py +++ b/erpnext/buying/doctype/buying_settings/buying_settings.py @@ -27,4 +27,4 @@ def before_save(self): def check_maintain_same_rate(self): if self.maintain_same_rate: - self.adjust_incoming_rate_based_on_purchase_invoice_rate = 0 + self.set_landed_cost_based_on_purchase_invoice_rate = 0 diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py index aa050beec4ee..ab29dd858293 100644 --- a/erpnext/controllers/buying_controller.py +++ b/erpnext/controllers/buying_controller.py @@ -272,7 +272,7 @@ def update_valuation_rate(self, reset_outgoing_rate=True): item.base_net_amount + item.item_tax_amount + flt(item.landed_cost_voucher_amount) - + flt(item.get("adjust_incoming_rate")) + + flt(item.get("rate_difference_with_purchase_invoice")) ) / qty_in_stock_uom else: item.valuation_rate = 0.0 diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index 0f3224cffb39..c1abd31bcc1a 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -451,14 +451,14 @@ def make_item_gl_entries(self, gl_entries, warehouse_account=None): item=d, ) - if d.adjust_incoming_rate and stock_rbnb: + if d.rate_difference_with_purchase_invoice and stock_rbnb: account_currency = get_account_currency(stock_rbnb) self.add_gl_entry( gl_entries=gl_entries, account=stock_rbnb, cost_center=d.cost_center, debit=0.0, - credit=flt(d.adjust_incoming_rate), + credit=flt(d.rate_difference_with_purchase_invoice), remarks=_("Adjustment based on Purchase Invoice rate"), against_account=warehouse_account_name, account_currency=account_currency, @@ -486,7 +486,7 @@ def make_item_gl_entries(self, gl_entries, warehouse_account=None): + flt(d.landed_cost_voucher_amount) + flt(d.rm_supp_cost) + flt(d.item_tax_amount) - + flt(d.adjust_incoming_rate) + + flt(d.rate_difference_with_purchase_invoice) ) divisional_loss = flt( @@ -919,7 +919,7 @@ def update_billing_percentage(pr_doc, update_modified=True, adjust_incoming_rate if item.billed_amt and item.amount: adjusted_amt = flt(item.billed_amt) - flt(item.amount) - item.db_set("adjust_incoming_rate", adjusted_amt, update_modified=False) + item.db_set("rate_difference_with_purchase_invoice", adjusted_amt, update_modified=False) percent_billed = round(100 * (total_billed_amount / (total_amount or 1)), 6) pr_doc.db_set("per_billed", percent_billed) 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 e12c5834619b..cd320fdfcd02 100644 --- a/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json +++ b/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json @@ -69,7 +69,7 @@ "item_tax_amount", "rm_supp_cost", "landed_cost_voucher_amount", - "adjust_incoming_rate", + "rate_difference_with_purchase_invoice", "billed_amt", "warehouse_and_reference", "warehouse", @@ -1010,9 +1010,9 @@ "read_only": 1 }, { - "fieldname": "adjust_incoming_rate", + "fieldname": "rate_difference_with_purchase_invoice", "fieldtype": "Currency", - "label": "Adjust Incoming Rate (Purchase Invoice)", + "label": "Rate Difference with Purchase Invoice", "no_copy": 1, "print_hide": 1, "read_only": 1 @@ -1021,7 +1021,7 @@ "idx": 1, "istable": 1, "links": [], - "modified": "2023-02-28 12:05:59.732266", + "modified": "2023-02-28 15:43:04.470104", "modified_by": "Administrator", "module": "Stock", "name": "Purchase Receipt Item", From 5fce8e2700a05f77d8f91f6d7278ffa1c7e394ad Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 28 Feb 2023 17:53:51 +0530 Subject: [PATCH 235/355] fix: default date in Subcontracting reports (cherry picked from commit dfddc4efc31c7853b395c64dc978cce2c37aa0db) --- .../subcontracted_item_to_be_received.js | 4 ++-- .../subcontracted_raw_materials_to_be_transferred.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/erpnext/buying/report/subcontracted_item_to_be_received/subcontracted_item_to_be_received.js b/erpnext/buying/report/subcontracted_item_to_be_received/subcontracted_item_to_be_received.js index 6304a0908d03..9db769d59bf8 100644 --- a/erpnext/buying/report/subcontracted_item_to_be_received/subcontracted_item_to_be_received.js +++ b/erpnext/buying/report/subcontracted_item_to_be_received/subcontracted_item_to_be_received.js @@ -22,14 +22,14 @@ frappe.query_reports["Subcontracted Item To Be Received"] = { fieldname:"from_date", label: __("From Date"), fieldtype: "Date", - default: frappe.datetime.add_months(frappe.datetime.month_start(), -1), + default: frappe.datetime.add_months(frappe.datetime.get_today(), -1), reqd: 1 }, { fieldname:"to_date", label: __("To Date"), fieldtype: "Date", - default: frappe.datetime.add_days(frappe.datetime.month_start(),-1), + default: frappe.datetime.get_today(), reqd: 1 }, ] diff --git a/erpnext/buying/report/subcontracted_raw_materials_to_be_transferred/subcontracted_raw_materials_to_be_transferred.js b/erpnext/buying/report/subcontracted_raw_materials_to_be_transferred/subcontracted_raw_materials_to_be_transferred.js index b6739fe66320..7e5338f353b4 100644 --- a/erpnext/buying/report/subcontracted_raw_materials_to_be_transferred/subcontracted_raw_materials_to_be_transferred.js +++ b/erpnext/buying/report/subcontracted_raw_materials_to_be_transferred/subcontracted_raw_materials_to_be_transferred.js @@ -22,14 +22,14 @@ frappe.query_reports["Subcontracted Raw Materials To Be Transferred"] = { fieldname:"from_date", label: __("From Date"), fieldtype: "Date", - default: frappe.datetime.add_months(frappe.datetime.month_start(), -1), + default: frappe.datetime.add_months(frappe.datetime.get_today(), -1), reqd: 1 }, { fieldname:"to_date", label: __("To Date"), fieldtype: "Date", - default: frappe.datetime.add_days(frappe.datetime.month_start(),-1), + default: frappe.datetime.get_today(), reqd: 1 }, ] From 9cd7b27ce0ade5bf4ea64c55c0f1f0036b0b7975 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Tue, 28 Feb 2023 12:05:10 +0530 Subject: [PATCH 236/355] fix: pos return throwing amount greater than grand total (cherry picked from commit 35c70f39fa28860b6c22dc3091eadb79c727a4de) --- erpnext/public/js/controllers/taxes_and_totals.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index a87c3ec9514b..974b937fa26a 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -131,8 +131,8 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { item.net_amount = item.amount = flt(item.rate * item.qty, precision("amount", item)); } else { - let qty = item.qty || 1; - qty = me.frm.doc.is_return ? -1 * qty : qty; + // allow for '0' qty on Credit/Debit notes + let qty = item.qty || -1 item.net_amount = item.amount = flt(item.rate * qty, precision("amount", item)); } From cc4448b5d5b7c8fc26a31f3288fee333bc474ac3 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 28 Feb 2023 13:29:26 +0000 Subject: [PATCH 237/355] chore(release): Bumped to Version 14.17.2 ## [14.17.2](https://github.com/frappe/erpnext/compare/v14.17.1...v14.17.2) (2023-02-28) ### Bug Fixes * conversion factor not set ([089c7d0](https://github.com/frappe/erpnext/commit/089c7d0a376fa54f7eae825ab4bac565253c952a)) * currency in coa import ([#34174](https://github.com/frappe/erpnext/issues/34174)) ([4d92d46](https://github.com/frappe/erpnext/commit/4d92d469e4c9ff2cfa7f5825dc93a9c53f3e232a)) * default date in Subcontracting reports ([5fce8e2](https://github.com/frappe/erpnext/commit/5fce8e2700a05f77d8f91f6d7278ffa1c7e394ad)) * german translations ([#31732](https://github.com/frappe/erpnext/issues/31732)) ([88a781f](https://github.com/frappe/erpnext/commit/88a781fa431d242e008f1bb7cc2ff072c0e495bc)) * incorrect acc depr amount if multiple FBs with straight line or manual method ([dda6bae](https://github.com/frappe/erpnext/commit/dda6baea3ed18546ce8493ad8ccc519f280d5b29)) * incorrect color in the BOM Stock Report ([001ed9e](https://github.com/frappe/erpnext/commit/001ed9e9ffc89e9f0b94a3d33c79241502f7ed8b)) * manual depr schedule ([971c072](https://github.com/frappe/erpnext/commit/971c0720e52b5120ab3497f3fc5bd5964b0deff7)) * multiple pos conversion issue resolved ([db964e8](https://github.com/frappe/erpnext/commit/db964e82567ead44147711ba9673474a39e700d3)) * not able to repost gl entries ([ae0318e](https://github.com/frappe/erpnext/commit/ae0318ef74f67b515593297744394cfae2d389eb)) * permission error while calling get_work_order_items ([3ea90ee](https://github.com/frappe/erpnext/commit/3ea90ee5cb6dfe83c84804e1d0a062745ce9e667)) * pos return throwing amount greater than grand total ([9cd7b27](https://github.com/frappe/erpnext/commit/9cd7b27ce0ade5bf4ea64c55c0f1f0036b0b7975)) * Remove missing DocField in fetch_from ([dc6ae46](https://github.com/frappe/erpnext/commit/dc6ae46d591d31dda9c44ffadb56650c0cbf01e1)) * set `from_warehouse` and `to_warehouse` while mapping SE ([80e23d0](https://github.com/frappe/erpnext/commit/80e23d035e388d9790ace84a740df948296cf7e1)) * **test:** use standalone method to fetch work orders from SO ([1719884](https://github.com/frappe/erpnext/commit/17198844c0b36aaff667d5cb676e5e95395d3847)) * ui freeze on item selection in sales invoice ([1750ed4](https://github.com/frappe/erpnext/commit/1750ed4fb6648abc8fc0aa1695793ee948fc9303)) * user shouldn't able to make item price for item template ([fb8e45d](https://github.com/frappe/erpnext/commit/fb8e45d3d9520a101ebd7b8f4bd6920edea2b968)) * zero division error while making LCV ([1859be6](https://github.com/frappe/erpnext/commit/1859be6fef648a03cfb10955d7a4b1361505007a)) ### Performance Improvements * fetch SLE's on demand and memoize ([db1f17e](https://github.com/frappe/erpnext/commit/db1f17e5bce13093a97b5cca6da395f0432301e1)) ### Reverts * Revert "fix: Concurrency issues in Sales and Purchase returns" (#34202) ([9341d3e](https://github.com/frappe/erpnext/commit/9341d3e60ef528430c1914ddd50c4576d316224a)), closes [#34202](https://github.com/frappe/erpnext/issues/34202) [#34019](https://github.com/frappe/erpnext/issues/34019) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index ca10f275302e..3621f47795ea 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.17.1" +__version__ = "14.17.2" def get_default_company(user=None): From 7eccf431fd4caa755a9224a4ea635017022d14fe Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 1 Mar 2023 11:06:46 +0530 Subject: [PATCH 238/355] fix: consumed qty validation for subcontracting receipt (cherry picked from commit b38fe240900da4e3ac64c7bb03ef3aecbcd09f0d) --- .../subcontracting_receipt.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py index f4fd4de169dc..95dbc83bf808 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py @@ -191,14 +191,17 @@ def validate_rejected_warehouse(self): def validate_available_qty_for_consumption(self): for item in self.get("supplied_items"): + precision = item.precision("consumed_qty") if ( - item.available_qty_for_consumption and item.available_qty_for_consumption < item.consumed_qty + item.available_qty_for_consumption + and flt(item.available_qty_for_consumption, precision) - flt(item.consumed_qty, precision) < 0 ): - frappe.throw( - _( - "Row {0}: Consumed Qty must be less than or equal to Available Qty For Consumption in Consumed Items Table." - ).format(item.idx) - ) + msg = f"""Row {item.idx}: Consumed Qty {flt(item.consumed_qty, precision)} + must be less than or equal to Available Qty For Consumption + {flt(item.available_qty_for_consumption, precision)} + in Consumed Items Table.""" + + frappe.throw(_(msg)) def validate_items_qty(self): for item in self.items: From 6ba97504ed11834603fd788974c0659458bb82da Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 1 Mar 2023 11:06:46 +0530 Subject: [PATCH 239/355] fix: consumed qty validation for subcontracting receipt (cherry picked from commit b38fe240900da4e3ac64c7bb03ef3aecbcd09f0d) (cherry picked from commit 7eccf431fd4caa755a9224a4ea635017022d14fe) --- .../subcontracting_receipt.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py index f4fd4de169dc..95dbc83bf808 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py @@ -191,14 +191,17 @@ def validate_rejected_warehouse(self): def validate_available_qty_for_consumption(self): for item in self.get("supplied_items"): + precision = item.precision("consumed_qty") if ( - item.available_qty_for_consumption and item.available_qty_for_consumption < item.consumed_qty + item.available_qty_for_consumption + and flt(item.available_qty_for_consumption, precision) - flt(item.consumed_qty, precision) < 0 ): - frappe.throw( - _( - "Row {0}: Consumed Qty must be less than or equal to Available Qty For Consumption in Consumed Items Table." - ).format(item.idx) - ) + msg = f"""Row {item.idx}: Consumed Qty {flt(item.consumed_qty, precision)} + must be less than or equal to Available Qty For Consumption + {flt(item.available_qty_for_consumption, precision)} + in Consumed Items Table.""" + + frappe.throw(_(msg)) def validate_items_qty(self): for item in self.items: From 60a1e10b11206bfd4162e11476c9a03b8a1eae49 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 1 Mar 2023 10:22:45 +0000 Subject: [PATCH 240/355] chore(release): Bumped to Version 14.17.3 ## [14.17.3](https://github.com/frappe/erpnext/compare/v14.17.2...v14.17.3) (2023-03-01) ### Bug Fixes * consumed qty validation for subcontracting receipt ([6ba9750](https://github.com/frappe/erpnext/commit/6ba97504ed11834603fd788974c0659458bb82da)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 3621f47795ea..c7da6c148137 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.17.2" +__version__ = "14.17.3" def get_default_company(user=None): From b13bf1ebc517ccd9c5b6b079208ca3883e7418fd Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Wed, 1 Mar 2023 16:16:58 +0530 Subject: [PATCH 241/355] fix: Wrap unexpectedly long text in remark (cherry picked from commit ba66a6714c495f9d70dad79344342779c8011c6e) # Conflicts: # erpnext/accounts/report/general_ledger/general_ledger.html --- .../report/general_ledger/general_ledger.html | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/report/general_ledger/general_ledger.html b/erpnext/accounts/report/general_ledger/general_ledger.html index 475be92add57..e91c05dfb8c6 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.html +++ b/erpnext/accounts/report/general_ledger/general_ledger.html @@ -38,8 +38,11 @@
{% if(data[i].posting_date) { %} {%= frappe.datetime.str_to_user(data[i].posting_date) %} {%= data[i].voucher_type %} -
{%= data[i].voucher_no %} - +
{%= data[i].voucher_no %} + + {% var longest_word = cstr(data[i].remarks).split(" ").reduce((longest, word) => word.length > longest.length ? word : longest, ""); %} + 45 %} class="overflow-wrap-anywhere" {% endif %}> + {% if(!(filters.party || filters.account)) { %} {%= data[i].party || data[i].account %}
@@ -49,11 +52,22 @@
{% if(data[i].bill_no) { %}
{%= __("Supplier Invoice No") %}: {%= data[i].bill_no %} {% } %} +<<<<<<< HEAD {%= format_currency(data[i].debit, filters.presentation_currency || data[i].account_currency) %} {%= format_currency(data[i].credit, filters.presentation_currency || data[i].account_currency) %} +======= + + + + {%= format_currency(data[i].debit, filters.presentation_currency) %} + + + {%= format_currency(data[i].credit, filters.presentation_currency) %} + +>>>>>>> ba66a6714c (fix: Wrap unexpectedly long text in remark) {% } else { %} From f6469d83981386a7bb57b41178055eae5cda30bf Mon Sep 17 00:00:00 2001 From: Suraj Shetty <13928957+surajshetty3416@users.noreply.github.com> Date: Wed, 1 Mar 2023 16:25:25 +0530 Subject: [PATCH 242/355] fix: Resolve conflicts --- .../accounts/report/general_ledger/general_ledger.html | 8 -------- 1 file changed, 8 deletions(-) diff --git a/erpnext/accounts/report/general_ledger/general_ledger.html b/erpnext/accounts/report/general_ledger/general_ledger.html index e91c05dfb8c6..2d5ca497654f 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.html +++ b/erpnext/accounts/report/general_ledger/general_ledger.html @@ -52,13 +52,6 @@
{% if(data[i].bill_no) { %}
{%= __("Supplier Invoice No") %}: {%= data[i].bill_no %} {% } %} -<<<<<<< HEAD - - - {%= format_currency(data[i].debit, filters.presentation_currency || data[i].account_currency) %} - - {%= format_currency(data[i].credit, filters.presentation_currency || data[i].account_currency) %} -======= @@ -67,7 +60,6 @@
{%= format_currency(data[i].credit, filters.presentation_currency) %} ->>>>>>> ba66a6714c (fix: Wrap unexpectedly long text in remark) {% } else { %} From 3db82587eb9d3e55a672bdbd2118a37ee1e72f33 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 2 Mar 2023 11:15:46 +0530 Subject: [PATCH 243/355] fix: `rejected_serial_no` not getting copied from PR to PR(Return) (cherry picked from commit a9f0a11ce62d8337fcbc1ebdda3be1b818a5f8a2) --- erpnext/controllers/sales_and_purchase_return.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py index 8bd09982bf42..c5ef28a2eeda 100644 --- a/erpnext/controllers/sales_and_purchase_return.py +++ b/erpnext/controllers/sales_and_purchase_return.py @@ -400,6 +400,16 @@ def update_item(source_doc, target_doc, source_parent): if serial_nos: target_doc.serial_no = "\n".join(serial_nos) + if source_doc.get("rejected_serial_no"): + returned_serial_nos = get_returned_serial_nos( + source_doc, source_parent, serial_no_field="rejected_serial_no" + ) + rejected_serial_nos = list( + set(get_serial_nos(source_doc.rejected_serial_no)) - set(returned_serial_nos) + ) + if rejected_serial_nos: + target_doc.rejected_serial_no = "\n".join(rejected_serial_nos) + if doctype in ["Purchase Receipt", "Subcontracting Receipt"]: returned_qty_map = get_returned_qty_map_for_row( source_parent.name, source_parent.supplier, source_doc.name, doctype @@ -610,7 +620,7 @@ def get_filters( return filters -def get_returned_serial_nos(child_doc, parent_doc): +def get_returned_serial_nos(child_doc, parent_doc, serial_no_field="serial_no"): from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos return_ref_field = frappe.scrub(child_doc.doctype) @@ -619,7 +629,7 @@ def get_returned_serial_nos(child_doc, parent_doc): serial_nos = [] - fields = ["`{0}`.`serial_no`".format("tab" + child_doc.doctype)] + fields = [f"`{'tab' + child_doc.doctype}`.`{serial_no_field}`"] filters = [ [parent_doc.doctype, "return_against", "=", parent_doc.name], @@ -629,6 +639,6 @@ def get_returned_serial_nos(child_doc, parent_doc): ] for row in frappe.get_all(parent_doc.doctype, fields=fields, filters=filters): - serial_nos.extend(get_serial_nos(row.serial_no)) + serial_nos.extend(get_serial_nos(row.get(serial_no_field))) return serial_nos From aa6b891ef0285102797f924d75e2332f60008dd8 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 2 Mar 2023 11:27:46 +0530 Subject: [PATCH 244/355] fix: `Serial No is mandatory` even if the `qty` is `0` (cherry picked from commit cb0b6de4b97009d0f7d1053f4e065416971a4832) --- erpnext/controllers/sales_and_purchase_return.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py index c5ef28a2eeda..341d51b8a5fb 100644 --- a/erpnext/controllers/sales_and_purchase_return.py +++ b/erpnext/controllers/sales_and_purchase_return.py @@ -131,7 +131,7 @@ def validate_returned_items(doc): ) elif ref.serial_no: - if not d.serial_no: + if d.qty and not d.serial_no: frappe.throw(_("Row # {0}: Serial No is mandatory").format(d.idx)) else: serial_nos = get_serial_nos(d.serial_no) From 9930adcd28bfc90d90ecb56449676966e1721840 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 2 Mar 2023 11:15:46 +0530 Subject: [PATCH 245/355] fix: `rejected_serial_no` not getting copied from PR to PR(Return) (cherry picked from commit a9f0a11ce62d8337fcbc1ebdda3be1b818a5f8a2) (cherry picked from commit 3db82587eb9d3e55a672bdbd2118a37ee1e72f33) --- erpnext/controllers/sales_and_purchase_return.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py index 8bd09982bf42..c5ef28a2eeda 100644 --- a/erpnext/controllers/sales_and_purchase_return.py +++ b/erpnext/controllers/sales_and_purchase_return.py @@ -400,6 +400,16 @@ def update_item(source_doc, target_doc, source_parent): if serial_nos: target_doc.serial_no = "\n".join(serial_nos) + if source_doc.get("rejected_serial_no"): + returned_serial_nos = get_returned_serial_nos( + source_doc, source_parent, serial_no_field="rejected_serial_no" + ) + rejected_serial_nos = list( + set(get_serial_nos(source_doc.rejected_serial_no)) - set(returned_serial_nos) + ) + if rejected_serial_nos: + target_doc.rejected_serial_no = "\n".join(rejected_serial_nos) + if doctype in ["Purchase Receipt", "Subcontracting Receipt"]: returned_qty_map = get_returned_qty_map_for_row( source_parent.name, source_parent.supplier, source_doc.name, doctype @@ -610,7 +620,7 @@ def get_filters( return filters -def get_returned_serial_nos(child_doc, parent_doc): +def get_returned_serial_nos(child_doc, parent_doc, serial_no_field="serial_no"): from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos return_ref_field = frappe.scrub(child_doc.doctype) @@ -619,7 +629,7 @@ def get_returned_serial_nos(child_doc, parent_doc): serial_nos = [] - fields = ["`{0}`.`serial_no`".format("tab" + child_doc.doctype)] + fields = [f"`{'tab' + child_doc.doctype}`.`{serial_no_field}`"] filters = [ [parent_doc.doctype, "return_against", "=", parent_doc.name], @@ -629,6 +639,6 @@ def get_returned_serial_nos(child_doc, parent_doc): ] for row in frappe.get_all(parent_doc.doctype, fields=fields, filters=filters): - serial_nos.extend(get_serial_nos(row.serial_no)) + serial_nos.extend(get_serial_nos(row.get(serial_no_field))) return serial_nos From 7629caa647f5d6a33ffafbb8126af95f2720df75 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 2 Mar 2023 11:27:46 +0530 Subject: [PATCH 246/355] fix: `Serial No is mandatory` even if the `qty` is `0` (cherry picked from commit cb0b6de4b97009d0f7d1053f4e065416971a4832) (cherry picked from commit aa6b891ef0285102797f924d75e2332f60008dd8) --- erpnext/controllers/sales_and_purchase_return.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py index c5ef28a2eeda..341d51b8a5fb 100644 --- a/erpnext/controllers/sales_and_purchase_return.py +++ b/erpnext/controllers/sales_and_purchase_return.py @@ -131,7 +131,7 @@ def validate_returned_items(doc): ) elif ref.serial_no: - if not d.serial_no: + if d.qty and not d.serial_no: frappe.throw(_("Row # {0}: Serial No is mandatory").format(d.idx)) else: serial_nos = get_serial_nos(d.serial_no) From a59c580480a1e41a155bf0e301447ae8d7a4fbd7 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Thu, 2 Mar 2023 08:08:44 +0000 Subject: [PATCH 247/355] chore(release): Bumped to Version 14.17.4 ## [14.17.4](https://github.com/frappe/erpnext/compare/v14.17.3...v14.17.4) (2023-03-02) ### Bug Fixes * `rejected_serial_no` not getting copied from PR to PR(Return) ([9930adc](https://github.com/frappe/erpnext/commit/9930adcd28bfc90d90ecb56449676966e1721840)) * `Serial No is mandatory` even if the `qty` is `0` ([7629caa](https://github.com/frappe/erpnext/commit/7629caa647f5d6a33ffafbb8126af95f2720df75)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index c7da6c148137..ff1c3e67a2c5 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.17.3" +__version__ = "14.17.4" def get_default_company(user=None): From 1e086db7c7d96335bb28126745d11538f8a6810a Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sat, 18 Feb 2023 12:18:41 +0530 Subject: [PATCH 248/355] refactor: rewrite `get_item_details.py` queries in `QB` (cherry picked from commit 6b144baa69c0c31c8e7fb7e9ba3ccd9d9671e7fb) --- erpnext/stock/get_item_details.py | 269 +++++++++++++++--------------- 1 file changed, 139 insertions(+), 130 deletions(-) diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index b53f429edf21..e2a1f3973c21 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -8,6 +8,7 @@ from frappe import _, throw from frappe.model import child_table_fields, default_fields from frappe.model.meta import get_field_precision +from frappe.query_builder.functions import CombineDatetime, IfNull, Sum from frappe.utils import add_days, add_months, cint, cstr, flt, getdate from erpnext import get_company_currency @@ -526,12 +527,8 @@ def get_barcode_data(items_list): itemwise_barcode = {} for item in items_list: - barcodes = frappe.db.sql( - """ - select barcode from `tabItem Barcode` where parent = %s - """, - item.item_code, - as_dict=1, + barcodes = frappe.db.get_all( + "Item Barcode", filters={"parent": item.item_code}, fields="barcode" ) for barcode in barcodes: @@ -891,34 +888,36 @@ def get_item_price(args, item_code, ignore_party=False): :param item_code: str, Item Doctype field item_code """ - args["item_code"] = item_code - - conditions = """where item_code=%(item_code)s - and price_list=%(price_list)s - and ifnull(uom, '') in ('', %(uom)s)""" - - conditions += "and ifnull(batch_no, '') in ('', %(batch_no)s)" + ip = frappe.qb.DocType("Item Price") + query = ( + frappe.qb.from_(ip) + .select(ip.name, ip.price_list_rate, ip.uom) + .where( + (ip.item_code == item_code) + & (ip.price_list == args.get("price_list")) + & (IfNull(ip.uom, "").isin(["", args.get("uom")])) + & (IfNull(ip.batch_no, "").isin(["", args.get("batch_no")])) + ) + .orderby(ip.valid_from, order=frappe.qb.desc) + .orderby(IfNull(ip.batch_no, ""), order=frappe.qb.desc) + .orderby(ip.uom, order=frappe.qb.desc) + ) if not ignore_party: if args.get("customer"): - conditions += " and customer=%(customer)s" + query = query.where(ip.customer == args.get("customer")) elif args.get("supplier"): - conditions += " and supplier=%(supplier)s" + query = query.where(ip.supplier == args.get("supplier")) else: - conditions += "and (customer is null or customer = '') and (supplier is null or supplier = '')" + query = query.where((IfNull(ip.customer, "") == "") & (IfNull(ip.supplier, "") == "")) if args.get("transaction_date"): - conditions += """ and %(transaction_date)s between - ifnull(valid_from, '2000-01-01') and ifnull(valid_upto, '2500-12-31')""" - - return frappe.db.sql( - """ select name, price_list_rate, uom - from `tabItem Price` {conditions} - order by valid_from desc, ifnull(batch_no, '') desc, uom desc """.format( - conditions=conditions - ), - args, - ) + query = query.where( + (IfNull(ip.valid_from, "2000-01-01") <= args["transaction_date"]) + & (IfNull(ip.valid_upto, "2500-12-31") >= args["transaction_date"]) + ) + + return query.run() def get_price_list_rate_for(args, item_code): @@ -1091,91 +1090,88 @@ def get_pos_profile(company, pos_profile=None, user=None): if not user: user = frappe.session["user"] - condition = "pfu.user = %(user)s AND pfu.default=1" - if user and company: - condition = "pfu.user = %(user)s AND pf.company = %(company)s AND pfu.default=1" - - pos_profile = frappe.db.sql( - """SELECT pf.* - FROM - `tabPOS Profile` pf LEFT JOIN `tabPOS Profile User` pfu - ON - pf.name = pfu.parent - WHERE - {cond} AND pf.disabled = 0 - """.format( - cond=condition - ), - {"user": user, "company": company}, - as_dict=1, + pf = frappe.qb.DocType("POS Profile") + pfu = frappe.qb.DocType("POS Profile User") + + query = ( + frappe.qb.from_(pf) + .left_join(pfu) + .on(pf.name == pfu.parent) + .select(pf.star) + .where((pfu.user == user) & (pfu.default == 1)) ) + if company: + query = query.where(pf.company == company) + + pos_profile = query.run(as_dict=True) + if not pos_profile and company: - pos_profile = frappe.db.sql( - """SELECT pf.* - FROM - `tabPOS Profile` pf LEFT JOIN `tabPOS Profile User` pfu - ON - pf.name = pfu.parent - WHERE - pf.company = %(company)s AND pf.disabled = 0 - """, - {"company": company}, - as_dict=1, - ) + pos_profile = ( + frappe.qb.from_(pf) + .left_join(pfu) + .on(pf.name == pfu.parent) + .select(pf.star) + .where((pf.company == company) & (pf.disabled == 0)) + ).run(as_dict=True) return pos_profile and pos_profile[0] or None def get_serial_nos_by_fifo(args, sales_order=None): if frappe.db.get_single_value("Stock Settings", "automatically_set_serial_nos_based_on_fifo"): - return "\n".join( - frappe.db.sql_list( - """select name from `tabSerial No` - where item_code=%(item_code)s and warehouse=%(warehouse)s and - sales_order=IF(%(sales_order)s IS NULL, sales_order, %(sales_order)s) - order by timestamp(purchase_date, purchase_time) - asc limit %(qty)s""", - { - "item_code": args.item_code, - "warehouse": args.warehouse, - "qty": abs(cint(args.stock_qty)), - "sales_order": sales_order, - }, - ) + sn = frappe.qb.DocType("Serial No") + query = ( + frappe.qb.from_(sn) + .select(sn.name) + .where((sn.item_code == args.item_code) & (sn.warehouse == args.warehouse)) + .orderby(CombineDatetime(sn.purchase_date, sn.purchase_time)) + .limit(abs(cint(args.stock_qty))) ) + if sales_order: + query = query.where(sn.sales_order == sales_order) + + serial_nos = query.run(as_list=True) + serial_nos = [s[0] for s in serial_nos] + + return "\n".join(serial_nos) + def get_serial_no_batchwise(args, sales_order=None): if frappe.db.get_single_value("Stock Settings", "automatically_set_serial_nos_based_on_fifo"): - return "\n".join( - frappe.db.sql_list( - """select name from `tabSerial No` - where item_code=%(item_code)s and warehouse=%(warehouse)s and - sales_order=IF(%(sales_order)s IS NULL, sales_order, %(sales_order)s) - and batch_no=IF(%(batch_no)s IS NULL, batch_no, %(batch_no)s) order - by timestamp(purchase_date, purchase_time) asc limit %(qty)s""", - { - "item_code": args.item_code, - "warehouse": args.warehouse, - "batch_no": args.batch_no, - "qty": abs(cint(args.stock_qty)), - "sales_order": sales_order, - }, - ) + sn = frappe.qb.DocType("Serial No") + query = ( + frappe.qb.from_(sn) + .select(sn.name) + .where((sn.item_code == args.item_code) & (sn.warehouse == args.warehouse)) + .orderby(CombineDatetime(sn.purchase_date, sn.purchase_time)) + .limit(abs(cint(args.stock_qty))) ) + if sales_order: + query = query.where(sn.sales_order == sales_order) + if args.batch_no: + query = query.where(sn.batch_no == args.batch_no) + + serial_nos = query.run(as_list=True) + serial_nos = [s[0] for s in serial_nos] + + return "\n".join(serial_nos) + @frappe.whitelist() def get_conversion_factor(item_code, uom): variant_of = frappe.db.get_value("Item", item_code, "variant_of", cache=True) filters = {"parent": item_code, "uom": uom} + if variant_of: filters["parent"] = ("in", (item_code, variant_of)) conversion_factor = frappe.db.get_value("UOM Conversion Detail", filters, "conversion_factor") if not conversion_factor: stock_uom = frappe.db.get_value("Item", item_code, "stock_uom") conversion_factor = get_uom_conv_factor(uom, stock_uom) + return {"conversion_factor": conversion_factor or 1.0} @@ -1194,7 +1190,6 @@ def get_bin_details(item_code, warehouse, company=None, include_child_warehouses if warehouse: from frappe.query_builder.functions import Coalesce, Sum - from erpnext.stock.doctype.warehouse.warehouse import get_child_warehouses warehouses = get_child_warehouses(warehouse) if include_child_warehouses else [warehouse] @@ -1217,12 +1212,16 @@ def get_bin_details(item_code, warehouse, company=None, include_child_warehouses def get_company_total_stock(item_code, company): - return frappe.db.sql( - """SELECT sum(actual_qty) from - (`tabBin` INNER JOIN `tabWarehouse` ON `tabBin`.warehouse = `tabWarehouse`.name) - WHERE `tabWarehouse`.company = %s and `tabBin`.item_code = %s""", - (company, item_code), - )[0][0] + bin = frappe.qb.DocType("Bin") + wh = frappe.qb.DocType("Warehouse") + + return ( + frappe.qb.from_(bin) + .inner_join(wh) + .on(bin.warehouse == wh.name) + .select(Sum(bin.actual_qty)) + .where((wh.company == company) & (bin.item_code == item_code)) + ).run()[0][0] @frappe.whitelist() @@ -1231,6 +1230,7 @@ def get_serial_no_details(item_code, warehouse, stock_qty, serial_no): {"item_code": item_code, "warehouse": warehouse, "stock_qty": stock_qty, "serial_no": serial_no} ) serial_no = get_serial_no(args) + return {"serial_no": serial_no} @@ -1250,6 +1250,7 @@ def get_bin_details_and_serial_nos( bin_details_and_serial_nos.update( get_serial_no_details(item_code, warehouse, stock_qty, serial_no) ) + return bin_details_and_serial_nos @@ -1264,6 +1265,7 @@ def get_batch_qty_and_serial_no(batch_no, stock_qty, warehouse, item_code, has_s ) serial_no = get_serial_no(args) batch_qty_and_serial_no.update({"serial_no": serial_no}) + return batch_qty_and_serial_no @@ -1336,7 +1338,6 @@ def apply_price_list(args, as_doc=False): def apply_price_list_on_item(args): item_doc = frappe.db.get_value("Item", args.item_code, ["name", "variant_of"], as_dict=1) item_details = get_price_list_rate(args, item_doc) - item_details.update(get_pricing_rule_for_item(args)) return item_details @@ -1420,12 +1421,15 @@ def get_valuation_rate(item_code, company, warehouse=None): ) or {"valuation_rate": 0} elif not item.get("is_stock_item"): - valuation_rate = frappe.db.sql( - """select sum(base_net_amount) / sum(qty*conversion_factor) - from `tabPurchase Invoice Item` - where item_code = %s and docstatus=1""", - item_code, - ) + pi_item = frappe.qb.DocType("Purchase Invoice Item") + valuation_rate = ( + frappe.qb.from_(pi_item) + .select((Sum(pi_item.base_net_amount) / Sum(pi_item.qty * pi_item.conversion_factor))) + .where( + (pi_item.docstatus == 1) + & (pi_item.item_code == item_code) + ) + ).run() if valuation_rate: return {"valuation_rate": valuation_rate[0][0] or 0.0} @@ -1483,31 +1487,35 @@ def get_blanket_order_details(args): args = frappe._dict(json.loads(args)) blanket_order_details = None - condition = "" + if args.item_code: + bo = frappe.qb.DocType("Blanket Order") + bo_item = frappe.qb.DocType("Blanket Order Item") + + query = ( + frappe.qb.from_(bo) + .from_(bo_item) + .select(bo_item.rate.as_("blanket_order_rate"), bo.name.as_("blanket_order")) + .where( + (bo.company == args.company) + & (bo_item.item_code == args.item_code) + & (bo.docstatus == 1) + & (bo.name == bo_item.parent) + ) + ) + if args.customer and args.doctype == "Sales Order": - condition = " and bo.customer=%(customer)s" + query = query.where(bo.customer == args.customer) elif args.supplier and args.doctype == "Purchase Order": - condition = " and bo.supplier=%(supplier)s" + query = query.where(bo.supplier == args.supplier) if args.blanket_order: - condition += " and bo.name =%(blanket_order)s" + query = query.where(bo.name == args.blanket_order) if args.transaction_date: - condition += " and bo.to_date>=%(transaction_date)s" - - blanket_order_details = frappe.db.sql( - """ - select boi.rate as blanket_order_rate, bo.name as blanket_order - from `tabBlanket Order` bo, `tabBlanket Order Item` boi - where bo.company=%(company)s and boi.item_code=%(item_code)s - and bo.docstatus=1 and bo.name = boi.parent {0} - """.format( - condition - ), - args, - as_dict=True, - ) + query = query.where(bo.to_date >= args.transaction_date) + blanket_order_details = query.run(as_dict=True) blanket_order_details = blanket_order_details[0] if blanket_order_details else "" + return blanket_order_details @@ -1517,10 +1525,10 @@ def get_so_reservation_for_item(args): if get_reserved_qty_for_so(args.get("against_sales_order"), args.get("item_code")): reserved_so = args.get("against_sales_order") elif args.get("against_sales_invoice"): - sales_order = frappe.db.sql( - """select sales_order from `tabSales Invoice Item` where - parent=%s and item_code=%s""", - (args.get("against_sales_invoice"), args.get("item_code")), + sales_order = frappe.db.get_all( + "Sales Invoice Item", + filters={"parent": args.get("against_sales_invoice"), "item_code": args.get("item_code")}, + fields="sales_order", ) if sales_order and sales_order[0]: if get_reserved_qty_for_so(sales_order[0][0], args.get("item_code")): @@ -1532,13 +1540,14 @@ def get_so_reservation_for_item(args): def get_reserved_qty_for_so(sales_order, item_code): - reserved_qty = frappe.db.sql( - """select sum(qty) from `tabSales Order Item` - where parent=%s and item_code=%s and ensure_delivery_based_on_produced_serial_no=1 - """, - (sales_order, item_code), + reserved_qty = frappe.db.get_value( + "Sales Order Item", + filters={ + "parent": sales_order, + "item_code": item_code, + "ensure_delivery_based_on_produced_serial_no": 1, + }, + fieldname="sum(qty)", ) - if reserved_qty and reserved_qty[0][0]: - return reserved_qty[0][0] - else: - return 0 + + return reserved_qty or 0 From dea5290d81dca51da28d73fe58622df0557fa935 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sat, 18 Feb 2023 14:33:31 +0530 Subject: [PATCH 249/355] refactor: remove method `get_serial_no_batchwise` from `get_item_details.py` (cherry picked from commit 35489fbbf94080644094a73dd1cc643de1a059c9) --- erpnext/stock/get_item_details.py | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index e2a1f3973c21..f017af6e9157 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -1119,26 +1119,6 @@ def get_pos_profile(company, pos_profile=None, user=None): def get_serial_nos_by_fifo(args, sales_order=None): - if frappe.db.get_single_value("Stock Settings", "automatically_set_serial_nos_based_on_fifo"): - sn = frappe.qb.DocType("Serial No") - query = ( - frappe.qb.from_(sn) - .select(sn.name) - .where((sn.item_code == args.item_code) & (sn.warehouse == args.warehouse)) - .orderby(CombineDatetime(sn.purchase_date, sn.purchase_time)) - .limit(abs(cint(args.stock_qty))) - ) - - if sales_order: - query = query.where(sn.sales_order == sales_order) - - serial_nos = query.run(as_list=True) - serial_nos = [s[0] for s in serial_nos] - - return "\n".join(serial_nos) - - -def get_serial_no_batchwise(args, sales_order=None): if frappe.db.get_single_value("Stock Settings", "automatically_set_serial_nos_based_on_fifo"): sn = frappe.qb.DocType("Serial No") query = ( @@ -1455,7 +1435,7 @@ def get_serial_no(args, serial_nos=None, sales_order=None): if args.get("warehouse") and args.get("stock_qty") and args.get("item_code"): has_serial_no = frappe.get_value("Item", {"item_code": args.item_code}, "has_serial_no") if args.get("batch_no") and has_serial_no == 1: - return get_serial_no_batchwise(args, sales_order) + return get_serial_nos_by_fifo(args, sales_order) elif has_serial_no == 1: args = json.dumps( { From 731dc4cdd9d9e263828136918883561245a002fc Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Tue, 28 Feb 2023 15:14:34 +0530 Subject: [PATCH 250/355] chore: `Linters` (cherry picked from commit 58c027d4cc5895041446243ce9690f0948cee070) --- erpnext/stock/get_item_details.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index f017af6e9157..489ec6ebecce 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -1144,7 +1144,7 @@ def get_serial_nos_by_fifo(args, sales_order=None): def get_conversion_factor(item_code, uom): variant_of = frappe.db.get_value("Item", item_code, "variant_of", cache=True) filters = {"parent": item_code, "uom": uom} - + if variant_of: filters["parent"] = ("in", (item_code, variant_of)) conversion_factor = frappe.db.get_value("UOM Conversion Detail", filters, "conversion_factor") @@ -1170,6 +1170,7 @@ def get_bin_details(item_code, warehouse, company=None, include_child_warehouses if warehouse: from frappe.query_builder.functions import Coalesce, Sum + from erpnext.stock.doctype.warehouse.warehouse import get_child_warehouses warehouses = get_child_warehouses(warehouse) if include_child_warehouses else [warehouse] @@ -1245,7 +1246,7 @@ def get_batch_qty_and_serial_no(batch_no, stock_qty, warehouse, item_code, has_s ) serial_no = get_serial_no(args) batch_qty_and_serial_no.update({"serial_no": serial_no}) - + return batch_qty_and_serial_no @@ -1405,10 +1406,7 @@ def get_valuation_rate(item_code, company, warehouse=None): valuation_rate = ( frappe.qb.from_(pi_item) .select((Sum(pi_item.base_net_amount) / Sum(pi_item.qty * pi_item.conversion_factor))) - .where( - (pi_item.docstatus == 1) - & (pi_item.item_code == item_code) - ) + .where((pi_item.docstatus == 1) & (pi_item.item_code == item_code)) ).run() if valuation_rate: From 1cdf7e0988a3202bb0d5ac74912720a2f958f18c Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Wed, 1 Mar 2023 15:00:24 +0530 Subject: [PATCH 251/355] chore: Make finance book read only (cherry picked from commit 28dd1a25cb3c292883c709ae06d331a56d7c0f40) --- erpnext/accounts/doctype/journal_entry/journal_entry.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.json b/erpnext/accounts/doctype/journal_entry/journal_entry.json index 498fc7c295f4..80e72226d3d3 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.json +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.json @@ -137,7 +137,8 @@ "fieldname": "finance_book", "fieldtype": "Link", "label": "Finance Book", - "options": "Finance Book" + "options": "Finance Book", + "read_only": 1 }, { "fieldname": "2_add_edit_gl_entries", @@ -538,7 +539,7 @@ "idx": 176, "is_submittable": 1, "links": [], - "modified": "2023-01-17 12:53:53.280620", + "modified": "2023-03-01 14:58:59.286591", "modified_by": "Administrator", "module": "Accounts", "name": "Journal Entry", From b08cdc00f2022c2622939e6af9db8db51c31912e Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sat, 4 Mar 2023 01:05:55 +0530 Subject: [PATCH 252/355] fix: `Inventory Dimension` for `Stock Reconciliation` (cherry picked from commit 0e1b7760a8b688d419bf6f99e67d222ca430d7de) --- .../stock/doctype/stock_reconciliation/stock_reconciliation.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py index 398b3c98e383..3dbdfd56e28a 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py @@ -406,6 +406,8 @@ def get_sle_for_items(self, row, serial_nos=None): } ) + self.update_inventory_dimensions(row, data) + if not row.batch_no: data.qty_after_transaction = flt(row.qty, row.precision("qty")) From ab737424c26fb751693e8003e6d9eade104f08cd Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sat, 4 Mar 2023 15:19:59 +0530 Subject: [PATCH 253/355] fix: update inventory dimensions before returning sle --- .../doctype/stock_reconciliation/stock_reconciliation.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py index 3dbdfd56e28a..a89981f82e9c 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py @@ -397,6 +397,7 @@ def get_sle_for_items(self, row, serial_nos=None): "voucher_type": self.doctype, "voucher_no": self.name, "voucher_detail_no": row.name, + "actual_qty": flt(row.current_qty), "company": self.company, "stock_uom": frappe.db.get_value("Item", row.item_code, "stock_uom"), "is_cancelled": 1 if self.docstatus == 2 else 0, @@ -406,8 +407,6 @@ def get_sle_for_items(self, row, serial_nos=None): } ) - self.update_inventory_dimensions(row, data) - if not row.batch_no: data.qty_after_transaction = flt(row.qty, row.precision("qty")) @@ -425,6 +424,8 @@ def get_sle_for_items(self, row, serial_nos=None): data.valuation_rate = flt(row.valuation_rate) data.stock_value_difference = -1 * flt(row.amount_difference) + self.update_inventory_dimensions(row, data) + return data def make_sle_on_cancel(self): From d97c1bf0f4dd74bfa64819b901f0ce6f7a798cb9 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sat, 4 Mar 2023 17:06:07 +0530 Subject: [PATCH 254/355] fix: Stock Reconciliation `actual_qty` (cherry picked from commit 70de444b7b868d9fbf89413684cedc85ca491d4f) --- .../stock/doctype/stock_reconciliation/stock_reconciliation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py index a89981f82e9c..3f6a2c881b82 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py @@ -397,7 +397,7 @@ def get_sle_for_items(self, row, serial_nos=None): "voucher_type": self.doctype, "voucher_no": self.name, "voucher_detail_no": row.name, - "actual_qty": flt(row.current_qty), + "actual_qty": 0, "company": self.company, "stock_uom": frappe.db.get_value("Item", row.item_code, "stock_uom"), "is_cancelled": 1 if self.docstatus == 2 else 0, From 235ecca9fa96ce4ce6ff75e05012d9b1adca2148 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 6 Mar 2023 12:02:35 +0530 Subject: [PATCH 255/355] fix: BOM Update log not completed (cherry picked from commit 2f157fa5d3e08c642847042282512536e9a20ca5) --- erpnext/hooks.py | 2 +- .../manufacturing/doctype/bom_update_log/bom_update_log.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/erpnext/hooks.py b/erpnext/hooks.py index 797f8aa650f1..e24038d0c6e2 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -368,7 +368,7 @@ scheduler_events = { "cron": { - "0/5 * * * *": [ + "0/15 * * * *": [ "erpnext.manufacturing.doctype.bom_update_log.bom_update_log.resume_bom_cost_update_jobs", ], "0/30 * * * *": [ diff --git a/erpnext/manufacturing/doctype/bom_update_log/bom_update_log.py b/erpnext/manufacturing/doctype/bom_update_log/bom_update_log.py index c3f52d45833a..51f7b24e745f 100644 --- a/erpnext/manufacturing/doctype/bom_update_log/bom_update_log.py +++ b/erpnext/manufacturing/doctype/bom_update_log/bom_update_log.py @@ -212,7 +212,7 @@ def resume_bom_cost_update_jobs(): ["name", "boms_updated", "status"], ) incomplete_level = any(row.get("status") == "Pending" for row in bom_batches) - if not bom_batches or incomplete_level: + if not bom_batches or not incomplete_level: continue # Prep parent BOMs & updated processed BOMs for next level @@ -252,6 +252,9 @@ def get_processed_current_boms( current_boms = [] for row in bom_batches: + if not row.boms_updated: + continue + boms_updated = json.loads(row.boms_updated) current_boms.extend(boms_updated) boms_updated_dict = {bom: True for bom in boms_updated} From 9b84e1e39c93bcc008d0f4e8d7d6616668b2fdb6 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 11:45:51 +0530 Subject: [PATCH 256/355] chore: add german translations (#34167) chore: add german translations (#34167) * chore: add german translations * Apply suggestions from code review Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --------- Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> (cherry picked from commit bbb6a62a7ddbc5337998652721160437f79301eb) Co-authored-by: Patrick Eissler <77415730+PatrickDenis-stack@users.noreply.github.com> Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- erpnext/translations/de.csv | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/translations/de.csv b/erpnext/translations/de.csv index c474698d261e..1094d4bd9841 100644 --- a/erpnext/translations/de.csv +++ b/erpnext/translations/de.csv @@ -9916,3 +9916,5 @@ Cost and Freight,Kosten und Fracht, Delivered at Place,Geliefert benannter Ort, Delivered at Place Unloaded,Geliefert benannter Ort entladen, Delivered Duty Paid,Geliefert verzollt, +Discount Validity,Frist für den Rabatt, +Discount Validity Based On,Frist für den Rabatt berechnet sich nach, From ca59c699cdfe1eddce7263e1ed586021a2b0590e Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 13:34:25 +0530 Subject: [PATCH 257/355] fix: Payment Request against sales order with disabled rounded total (#34281) fix: Payment Request against sales order with disabled rounded total (#34281) * fix: Payment Request against sales order with disabled rounded total * chore: Do not consider advance amount (cherry picked from commit ea8e23384d3029569691e266700e3ebcdff6e17b) Co-authored-by: Deepesh Garg --- erpnext/accounts/doctype/payment_request/payment_request.py | 6 +----- .../doctype/payment_request/test_payment_request.py | 5 ++++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index b0ee58854826..d9b07435fdb3 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -495,26 +495,22 @@ def get_amount(ref_doc, payment_account=None): """get amount based on doctype""" dt = ref_doc.doctype if dt in ["Sales Order", "Purchase Order"]: - grand_total = flt(ref_doc.rounded_total) - flt(ref_doc.advance_paid) - + grand_total = flt(ref_doc.rounded_total) or flt(ref_doc.grand_total) elif dt in ["Sales Invoice", "Purchase Invoice"]: if ref_doc.party_account_currency == ref_doc.currency: grand_total = flt(ref_doc.outstanding_amount) else: grand_total = flt(ref_doc.outstanding_amount) / ref_doc.conversion_rate - elif dt == "POS Invoice": for pay in ref_doc.payments: if pay.type == "Phone" and pay.account == payment_account: grand_total = pay.amount break - elif dt == "Fees": grand_total = ref_doc.outstanding_amount if grand_total > 0: return grand_total - else: frappe.throw(_("Payment Entry is already created")) diff --git a/erpnext/accounts/doctype/payment_request/test_payment_request.py b/erpnext/accounts/doctype/payment_request/test_payment_request.py index 477c726940cd..4279aa4f85c6 100644 --- a/erpnext/accounts/doctype/payment_request/test_payment_request.py +++ b/erpnext/accounts/doctype/payment_request/test_payment_request.py @@ -45,7 +45,10 @@ def setUp(self): frappe.get_doc(method).insert(ignore_permissions=True) def test_payment_request_linkings(self): - so_inr = make_sales_order(currency="INR") + so_inr = make_sales_order(currency="INR", do_not_save=True) + so_inr.disable_rounded_total = 1 + so_inr.save() + pr = make_payment_request( dt="Sales Order", dn=so_inr.name, From 480797e85699ffe76bac841b30b6b7418451fad7 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:44:15 +0530 Subject: [PATCH 258/355] fix: Do not calculate commission post submit (#34267) fix: Do not calculate commission post submit (#34267) * fix: Do not calculate commision post submit * chore: Update condition to match server side logic Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --------- Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> (cherry picked from commit 10632d75b049616525fb2810c94db8a7a53759b0) Co-authored-by: Deepesh Garg --- erpnext/controllers/selling_controller.py | 2 +- erpnext/selling/sales_common.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index fce34b002a44..590e00fb11e5 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -139,7 +139,7 @@ def set_total_in_words(self): self.in_words = money_in_words(amount, self.currency) def calculate_commission(self): - if not self.meta.get_field("commission_rate"): + if not self.meta.get_field("commission_rate") or self.docstatus.is_submitted(): return self.round_floats_in(self, ("amount_eligible_for_commission", "commission_rate")) diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js index 5ce6e9c14604..f1df3a11de48 100644 --- a/erpnext/selling/sales_common.js +++ b/erpnext/selling/sales_common.js @@ -253,7 +253,7 @@ erpnext.selling.SellingController = class SellingController extends erpnext.Tran } calculate_commission() { - if(!this.frm.fields_dict.commission_rate) return; + if(!this.frm.fields_dict.commission_rate || this.frm.doc.docstatus === 1) return; if(this.frm.doc.commission_rate > 100) { this.frm.set_value("commission_rate", 100); From 64c758d0c0d2dcc168f5eabb5e3d90f19a0e4c47 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:45:43 +0530 Subject: [PATCH 259/355] fix: Default sales team not getting set (#34284) fix: Default sales team not getting set (#34284) (cherry picked from commit 7d0199d743c7861e883cadd582c036cc8d9b0a62) Co-authored-by: Deepesh Garg --- erpnext/controllers/selling_controller.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index 590e00fb11e5..1a81158b366d 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -87,6 +87,9 @@ def set_missing_lead_customer_details(self, for_validate=False): ) if not self.meta.get_field("sales_team"): party_details.pop("sales_team") + else: + self.set("sales_team", party_details.get("sales_team")) + self.update_if_missing(party_details) elif lead: From 71a281fb11c99e2ab37af6346ee038924de071b4 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:46:18 +0530 Subject: [PATCH 260/355] fix: Performance improvement when adding a new item (#34195) fix: Performance improvement when adding a new item (cherry picked from commit 49af5ba4349a03131e70c23a4580cb6c9c7d0c7d) Co-authored-by: HarryPaulo Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- erpnext/public/js/controllers/transaction.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index b6fab544220d..741e6acb50b9 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -488,7 +488,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe () => { var d = locals[cdt][cdn]; me.add_taxes_from_item_tax_template(d.item_tax_rate); - if (d.free_item_data) { + if (d.free_item_data && d.free_item_data.length > 0) { me.apply_product_discount(d); } }, From 0e9f9c31a0deb7ce02e2eb582ce4c72aaf7964ff Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:47:54 +0530 Subject: [PATCH 261/355] fix(minor): Dirty the form after clicking on Get advances button in Invoices (#34323) fix(minor): Dirty the form after clicking on Get advances button in Invoices (#34323) fix(minor): Dirty form after clicking on Get advances button (cherry picked from commit 2feb27e399632c858a7de144ae8873dc92e6af81) Co-authored-by: Marica --- erpnext/public/js/controllers/transaction.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 741e6acb50b9..f7620db2f1e4 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -1884,11 +1884,13 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe get_advances() { if(!this.frm.is_return) { + var me = this; return this.frm.call({ method: "set_advances", doc: this.frm.doc, callback: function(r, rt) { refresh_field("advances"); + me.frm.dirty(); } }) } From 164933aae81d831c9e82cf7c4496a39db0b1912f Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 16:52:56 +0530 Subject: [PATCH 262/355] refactor: use renamed timezone utils (#34301) refactor: use renamed timezone utils https://github.com/frappe/frappe/pull/20253 (cherry picked from commit 502a37a8641ed82c2936bfed1544b5178e1a3355) Co-authored-by: barredterra <14891507+barredterra@users.noreply.github.com> Co-authored-by: Deepesh Garg --- .../service_level_agreement/service_level_agreement.py | 4 ++-- erpnext/utilities/doctype/video/video.py | 3 ++- erpnext/www/book_appointment/index.py | 5 +++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/erpnext/support/doctype/service_level_agreement/service_level_agreement.py b/erpnext/support/doctype/service_level_agreement/service_level_agreement.py index e49f212f10fe..d60d7f86ce6d 100644 --- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.py +++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.py @@ -13,8 +13,8 @@ get_datetime, get_datetime_str, get_link_to_form, + get_system_timezone, get_time, - get_time_zone, get_weekdays, getdate, nowdate, @@ -978,7 +978,7 @@ def convert_utc_to_user_timezone(utc_timestamp, user): def get_tz(user): - return frappe.db.get_value("User", user, "time_zone") or get_time_zone() + return frappe.db.get_value("User", user, "time_zone") or get_system_timezone() @frappe.whitelist() diff --git a/erpnext/utilities/doctype/video/video.py b/erpnext/utilities/doctype/video/video.py index 13b7877b21d8..62033a5e18ef 100644 --- a/erpnext/utilities/doctype/video/video.py +++ b/erpnext/utilities/doctype/video/video.py @@ -10,6 +10,7 @@ from frappe import _ from frappe.model.document import Document from frappe.utils import cint +from frappe.utils.data import get_system_timezone from pyyoutube import Api @@ -64,7 +65,7 @@ def update_youtube_data(): frequency = get_frequency(frequency) time = datetime.now() - timezone = pytz.timezone(frappe.utils.get_time_zone()) + timezone = pytz.timezone(get_system_timezone()) site_time = time.astimezone(timezone) if frequency == 30: diff --git a/erpnext/www/book_appointment/index.py b/erpnext/www/book_appointment/index.py index dfca9465ed1c..f50c207ab98e 100644 --- a/erpnext/www/book_appointment/index.py +++ b/erpnext/www/book_appointment/index.py @@ -4,6 +4,7 @@ import frappe import pytz from frappe import _ +from frappe.utils.data import get_system_timezone WEEKDAYS = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] @@ -125,7 +126,7 @@ def filter_timeslots(date, timeslots): def convert_to_guest_timezone(guest_tz, datetimeobject): guest_tz = pytz.timezone(guest_tz) - local_timezone = pytz.timezone(frappe.utils.get_time_zone()) + local_timezone = pytz.timezone(get_system_timezone()) datetimeobject = local_timezone.localize(datetimeobject) datetimeobject = datetimeobject.astimezone(guest_tz) return datetimeobject @@ -134,7 +135,7 @@ def convert_to_guest_timezone(guest_tz, datetimeobject): def convert_to_system_timezone(guest_tz, datetimeobject): guest_tz = pytz.timezone(guest_tz) datetimeobject = guest_tz.localize(datetimeobject) - system_tz = pytz.timezone(frappe.utils.get_time_zone()) + system_tz = pytz.timezone(get_system_timezone()) datetimeobject = datetimeobject.astimezone(system_tz) return datetimeobject From 1a629b641845cac7b4b3db32a571d4dd26fbae13 Mon Sep 17 00:00:00 2001 From: Devin Slauenwhite Date: Tue, 7 Mar 2023 06:46:15 -0500 Subject: [PATCH 263/355] fix: exchange rate revaluation errors (#33947) * fix: set new balance for non-positive balances * fix: don't add debit: 0, credit: 0 entries to journal entry. * fix: add journal entry difference to unbooked gain/loss of exchange. * chore: linter * chore: remove invlaid TODO. [skip-ci] (cherry picked from commit 6de826b8c467bffdf2a3c20805dc334bf60925d0) --- .../exchange_rate_revaluation.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py b/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py index d67d59b5d455..a4f6a74a5abf 100644 --- a/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py +++ b/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py @@ -211,8 +211,7 @@ def calculate_new_account_balance(company, posting_date, account_details): # Handle Accounts with '0' balance in Account/Base Currency for d in [x for x in account_details if x.zero_balance]: - # TODO: Set new balance in Base/Account currency - if d.balance > 0: + if d.balance != 0: current_exchange_rate = new_exchange_rate = 0 new_balance_in_account_currency = 0 # this will be '0' @@ -399,6 +398,9 @@ def make_jv_for_revaluation(self): journal_entry_accounts = [] for d in accounts: + if not flt(d.get("balance_in_account_currency"), d.precision("balance_in_account_currency")): + continue + dr_or_cr = ( "debit_in_account_currency" if d.get("balance_in_account_currency") > 0 @@ -448,7 +450,13 @@ def make_jv_for_revaluation(self): } ) - journal_entry_accounts.append( + journal_entry.set("accounts", journal_entry_accounts) + journal_entry.set_amounts_in_company_currency() + journal_entry.set_total_debit_credit() + + self.gain_loss_unbooked += journal_entry.difference - self.gain_loss_unbooked + journal_entry.append( + "accounts", { "account": unrealized_exchange_gain_loss_account, "balance": get_balance_on(unrealized_exchange_gain_loss_account), @@ -460,10 +468,9 @@ def make_jv_for_revaluation(self): "exchange_rate": 1, "reference_type": "Exchange Rate Revaluation", "reference_name": self.name, - } + }, ) - journal_entry.set("accounts", journal_entry_accounts) journal_entry.set_amounts_in_company_currency() journal_entry.set_total_debit_credit() journal_entry.save() From a2e001a2da81ed074dff7439b74a07a57a0388bc Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Tue, 7 Mar 2023 17:56:57 +0530 Subject: [PATCH 264/355] Revert "refactor: use renamed timezone utils (#34301)" Revert "refactor: use renamed timezone utils (#34301)" This reverts commit 164933aae81d831c9e82cf7c4496a39db0b1912f. --- .../service_level_agreement/service_level_agreement.py | 4 ++-- erpnext/utilities/doctype/video/video.py | 3 +-- erpnext/www/book_appointment/index.py | 5 ++--- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/erpnext/support/doctype/service_level_agreement/service_level_agreement.py b/erpnext/support/doctype/service_level_agreement/service_level_agreement.py index d60d7f86ce6d..e49f212f10fe 100644 --- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.py +++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.py @@ -13,8 +13,8 @@ get_datetime, get_datetime_str, get_link_to_form, - get_system_timezone, get_time, + get_time_zone, get_weekdays, getdate, nowdate, @@ -978,7 +978,7 @@ def convert_utc_to_user_timezone(utc_timestamp, user): def get_tz(user): - return frappe.db.get_value("User", user, "time_zone") or get_system_timezone() + return frappe.db.get_value("User", user, "time_zone") or get_time_zone() @frappe.whitelist() diff --git a/erpnext/utilities/doctype/video/video.py b/erpnext/utilities/doctype/video/video.py index 62033a5e18ef..13b7877b21d8 100644 --- a/erpnext/utilities/doctype/video/video.py +++ b/erpnext/utilities/doctype/video/video.py @@ -10,7 +10,6 @@ from frappe import _ from frappe.model.document import Document from frappe.utils import cint -from frappe.utils.data import get_system_timezone from pyyoutube import Api @@ -65,7 +64,7 @@ def update_youtube_data(): frequency = get_frequency(frequency) time = datetime.now() - timezone = pytz.timezone(get_system_timezone()) + timezone = pytz.timezone(frappe.utils.get_time_zone()) site_time = time.astimezone(timezone) if frequency == 30: diff --git a/erpnext/www/book_appointment/index.py b/erpnext/www/book_appointment/index.py index f50c207ab98e..dfca9465ed1c 100644 --- a/erpnext/www/book_appointment/index.py +++ b/erpnext/www/book_appointment/index.py @@ -4,7 +4,6 @@ import frappe import pytz from frappe import _ -from frappe.utils.data import get_system_timezone WEEKDAYS = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] @@ -126,7 +125,7 @@ def filter_timeslots(date, timeslots): def convert_to_guest_timezone(guest_tz, datetimeobject): guest_tz = pytz.timezone(guest_tz) - local_timezone = pytz.timezone(get_system_timezone()) + local_timezone = pytz.timezone(frappe.utils.get_time_zone()) datetimeobject = local_timezone.localize(datetimeobject) datetimeobject = datetimeobject.astimezone(guest_tz) return datetimeobject @@ -135,7 +134,7 @@ def convert_to_guest_timezone(guest_tz, datetimeobject): def convert_to_system_timezone(guest_tz, datetimeobject): guest_tz = pytz.timezone(guest_tz) datetimeobject = guest_tz.localize(datetimeobject) - system_tz = pytz.timezone(get_system_timezone()) + system_tz = pytz.timezone(frappe.utils.get_time_zone()) datetimeobject = datetimeobject.astimezone(system_tz) return datetimeobject From 1b514632d2de619108c3b1345ad7d7513a95c0c6 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sun, 5 Mar 2023 21:57:02 +0530 Subject: [PATCH 265/355] perf: Stock Entry (Material Transfer) (cherry picked from commit de18f98c5c3d0ee5cc9d3df5b389917670514e64) --- .../doctype/job_card/job_card.py | 63 ++++++++++++------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/erpnext/manufacturing/doctype/job_card/job_card.py b/erpnext/manufacturing/doctype/job_card/job_card.py index 3133628cbf21..e82f37977cd6 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.py +++ b/erpnext/manufacturing/doctype/job_card/job_card.py @@ -561,7 +561,34 @@ def get_current_operation_data(self): ) def set_transferred_qty_in_job_card_item(self, ste_doc): - from frappe.query_builder.functions import Sum + def _get_job_card_items_transferred_qty(ste_doc): + from frappe.query_builder.functions import Sum + + job_card_items_transferred_qty = {} + job_card_items = [ + x.get("job_card_item") for x in ste_doc.get("items") if x.get("job_card_item") + ] + + if job_card_items: + se = frappe.qb.DocType("Stock Entry") + sed = frappe.qb.DocType("Stock Entry Detail") + + query = ( + frappe.qb.from_(sed) + .join(se) + .on(sed.parent == se.name) + .select(sed.job_card_item, Sum(sed.qty)) + .where( + (sed.job_card_item.isin(job_card_items)) + & (se.docstatus == 1) + & (se.purpose == "Material Transfer for Manufacture") + ) + .groupby(sed.job_card_item) + ) + + job_card_items_transferred_qty = frappe._dict(query.run(as_list=True)) + + return job_card_items_transferred_qty def _validate_over_transfer(row, transferred_qty): "Block over transfer of items if not allowed in settings." @@ -578,29 +605,23 @@ def _validate_over_transfer(row, transferred_qty): exc=JobCardOverTransferError, ) - for row in ste_doc.items: - if not row.job_card_item: - continue - - sed = frappe.qb.DocType("Stock Entry Detail") - se = frappe.qb.DocType("Stock Entry") - transferred_qty = ( - frappe.qb.from_(sed) - .join(se) - .on(sed.parent == se.name) - .select(Sum(sed.qty)) - .where( - (sed.job_card_item == row.job_card_item) - & (se.docstatus == 1) - & (se.purpose == "Material Transfer for Manufacture") - ) - ).run()[0][0] + job_card_items_transferred_qty = _get_job_card_items_transferred_qty(ste_doc) + if job_card_items_transferred_qty: allow_excess = frappe.db.get_single_value("Manufacturing Settings", "job_card_excess_transfer") - if not allow_excess: - _validate_over_transfer(row, transferred_qty) - frappe.db.set_value("Job Card Item", row.job_card_item, "transferred_qty", flt(transferred_qty)) + for row in ste_doc.items: + if not row.job_card_item: + continue + + transferred_qty = flt(job_card_items_transferred_qty.get(row.job_card_item)) + + if not allow_excess: + _validate_over_transfer(row, transferred_qty) + + frappe.db.set_value( + "Job Card Item", row.job_card_item, "transferred_qty", flt(transferred_qty) + ) def set_transferred_qty(self, update_status=False): "Set total FG Qty in Job Card for which RM was transferred." From b37712c038c65e200c5910634b49341199ab2900 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Tue, 7 Mar 2023 01:11:23 +0530 Subject: [PATCH 266/355] perf: `update_completed_qty()` in `material_request.py` (cherry picked from commit 8ad9e99cea5e3f235d0b3ead812d2a3a11d40081) --- .../material_request/material_request.py | 51 ++++++++++++------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py index bcf6dd79d8de..3548148145e9 100644 --- a/erpnext/stock/doctype/material_request/material_request.py +++ b/erpnext/stock/doctype/material_request/material_request.py @@ -10,6 +10,7 @@ import frappe from frappe import _, msgprint from frappe.model.mapper import get_mapped_doc +from frappe.query_builder.functions import Sum from frappe.utils import cint, cstr, flt, get_link_to_form, getdate, new_line_sep, nowdate from erpnext.buying.utils import check_on_hold_or_closed_status, validate_for_items @@ -183,6 +184,34 @@ def on_cancel(self): self.update_requested_qty() self.update_requested_qty_in_production_plan() + def get_mr_items_ordered_qty(self, mr_items): + mr_items_ordered_qty = {} + mr_items = [d.name for d in self.get("items") if d.name in mr_items] + + doctype = qty_field = None + if self.material_request_type in ("Material Issue", "Material Transfer", "Customer Provided"): + doctype = frappe.qb.DocType("Stock Entry Detail") + qty_field = doctype.transfer_qty + elif self.material_request_type == "Manufacture": + doctype = frappe.qb.DocType("Work Order") + qty_field = doctype.qty + + if doctype and qty_field: + query = ( + frappe.qb.from_(doctype) + .select(doctype.material_request_item, Sum(qty_field)) + .where( + (doctype.material_request == self.name) + & (doctype.material_request_item.isin(mr_items)) + & (doctype.docstatus == 1) + ) + .groupby(doctype.material_request_item) + ) + + mr_items_ordered_qty = frappe._dict(query.run()) + + return mr_items_ordered_qty + def update_completed_qty(self, mr_items=None, update_modified=True): if self.material_request_type == "Purchase": return @@ -190,18 +219,13 @@ def update_completed_qty(self, mr_items=None, update_modified=True): if not mr_items: mr_items = [d.name for d in self.get("items")] + mr_items_ordered_qty = self.get_mr_items_ordered_qty(mr_items) + mr_qty_allowance = frappe.db.get_single_value("Stock Settings", "mr_qty_allowance") + for d in self.get("items"): if d.name in mr_items: if self.material_request_type in ("Material Issue", "Material Transfer", "Customer Provided"): - d.ordered_qty = flt( - frappe.db.sql( - """select sum(transfer_qty) - from `tabStock Entry Detail` where material_request = %s - and material_request_item = %s and docstatus = 1""", - (self.name, d.name), - )[0][0] - ) - mr_qty_allowance = frappe.db.get_single_value("Stock Settings", "mr_qty_allowance") + d.ordered_qty = flt(mr_items_ordered_qty.get(d.name)) if mr_qty_allowance: allowed_qty = d.qty + (d.qty * (mr_qty_allowance / 100)) @@ -220,14 +244,7 @@ def update_completed_qty(self, mr_items=None, update_modified=True): ) elif self.material_request_type == "Manufacture": - d.ordered_qty = flt( - frappe.db.sql( - """select sum(qty) - from `tabWork Order` where material_request = %s - and material_request_item = %s and docstatus = 1""", - (self.name, d.name), - )[0][0] - ) + d.ordered_qty = flt(mr_items_ordered_qty.get(d.name)) frappe.db.set_value(d.doctype, d.name, "ordered_qty", d.ordered_qty) From 0696128acc8db5039e77b4b89565b82f29624a75 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 7 Mar 2023 14:26:16 +0000 Subject: [PATCH 267/355] chore(release): Bumped to Version 14.18.0 # [14.18.0](https://github.com/frappe/erpnext/compare/v14.17.4...v14.18.0) (2023-03-07) ### Bug Fixes * `Inventory Dimension` for `Stock Reconciliation` ([b08cdc0](https://github.com/frappe/erpnext/commit/b08cdc00f2022c2622939e6af9db8db51c31912e)) * `rejected_serial_no` not getting copied from PR to PR(Return) ([3db8258](https://github.com/frappe/erpnext/commit/3db82587eb9d3e55a672bdbd2118a37ee1e72f33)) * `Serial No is mandatory` even if the `qty` is `0` ([aa6b891](https://github.com/frappe/erpnext/commit/aa6b891ef0285102797f924d75e2332f60008dd8)) * BOM Update log not completed ([235ecca](https://github.com/frappe/erpnext/commit/235ecca9fa96ce4ce6ff75e05012d9b1adca2148)) * consumed qty validation for subcontracting receipt ([7eccf43](https://github.com/frappe/erpnext/commit/7eccf431fd4caa755a9224a4ea635017022d14fe)) * Default sales team not getting set ([#34284](https://github.com/frappe/erpnext/issues/34284)) ([64c758d](https://github.com/frappe/erpnext/commit/64c758d0c0d2dcc168f5eabb5e3d90f19a0e4c47)) * Do not calculate commission post submit ([#34267](https://github.com/frappe/erpnext/issues/34267)) ([480797e](https://github.com/frappe/erpnext/commit/480797e85699ffe76bac841b30b6b7418451fad7)) * labels name ([5e9f1df](https://github.com/frappe/erpnext/commit/5e9f1dfbb3f136aa70f6bb476d90aae77790d80d)) * **minor:** Dirty the form after clicking on Get advances button in Invoices ([#34323](https://github.com/frappe/erpnext/issues/34323)) ([0e9f9c3](https://github.com/frappe/erpnext/commit/0e9f9c31a0deb7ce02e2eb582ce4c72aaf7964ff)) * Payment Request against sales order with disabled rounded total ([#34281](https://github.com/frappe/erpnext/issues/34281)) ([ca59c69](https://github.com/frappe/erpnext/commit/ca59c699cdfe1eddce7263e1ed586021a2b0590e)) * Performance improvement when adding a new item ([#34195](https://github.com/frappe/erpnext/issues/34195)) ([71a281f](https://github.com/frappe/erpnext/commit/71a281fb11c99e2ab37af6346ee038924de071b4)) * Resolve conflicts ([f6469d8](https://github.com/frappe/erpnext/commit/f6469d83981386a7bb57b41178055eae5cda30bf)) * Stock Reconciliation `actual_qty` ([d97c1bf](https://github.com/frappe/erpnext/commit/d97c1bf0f4dd74bfa64819b901f0ce6f7a798cb9)) * update inventory dimensions before returning sle ([ab73742](https://github.com/frappe/erpnext/commit/ab737424c26fb751693e8003e6d9eade104f08cd)) * Wrap unexpectedly long text in remark ([b13bf1e](https://github.com/frappe/erpnext/commit/b13bf1ebc517ccd9c5b6b079208ca3883e7418fd)) ### Features * adjust purchase receipt valuation rate as per purchase invoice rate ([db033c6](https://github.com/frappe/erpnext/commit/db033c686229c12671062404efb409c17100635f)) ### Reverts * Revert "refactor: use renamed timezone utils (#34301)" ([a2e001a](https://github.com/frappe/erpnext/commit/a2e001a2da81ed074dff7439b74a07a57a0388bc)), closes [#34301](https://github.com/frappe/erpnext/issues/34301) [#34301](https://github.com/frappe/erpnext/issues/34301) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index ff1c3e67a2c5..46f9074de771 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.17.4" +__version__ = "14.18.0" def get_default_company(user=None): From 59a415eaa920ea3f518632d3983033b02a10fb8f Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sun, 5 Mar 2023 21:57:02 +0530 Subject: [PATCH 268/355] perf: Stock Entry (Material Transfer) (cherry picked from commit de18f98c5c3d0ee5cc9d3df5b389917670514e64) (cherry picked from commit 1b514632d2de619108c3b1345ad7d7513a95c0c6) --- .../doctype/job_card/job_card.py | 63 ++++++++++++------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/erpnext/manufacturing/doctype/job_card/job_card.py b/erpnext/manufacturing/doctype/job_card/job_card.py index 3133628cbf21..e82f37977cd6 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.py +++ b/erpnext/manufacturing/doctype/job_card/job_card.py @@ -561,7 +561,34 @@ def get_current_operation_data(self): ) def set_transferred_qty_in_job_card_item(self, ste_doc): - from frappe.query_builder.functions import Sum + def _get_job_card_items_transferred_qty(ste_doc): + from frappe.query_builder.functions import Sum + + job_card_items_transferred_qty = {} + job_card_items = [ + x.get("job_card_item") for x in ste_doc.get("items") if x.get("job_card_item") + ] + + if job_card_items: + se = frappe.qb.DocType("Stock Entry") + sed = frappe.qb.DocType("Stock Entry Detail") + + query = ( + frappe.qb.from_(sed) + .join(se) + .on(sed.parent == se.name) + .select(sed.job_card_item, Sum(sed.qty)) + .where( + (sed.job_card_item.isin(job_card_items)) + & (se.docstatus == 1) + & (se.purpose == "Material Transfer for Manufacture") + ) + .groupby(sed.job_card_item) + ) + + job_card_items_transferred_qty = frappe._dict(query.run(as_list=True)) + + return job_card_items_transferred_qty def _validate_over_transfer(row, transferred_qty): "Block over transfer of items if not allowed in settings." @@ -578,29 +605,23 @@ def _validate_over_transfer(row, transferred_qty): exc=JobCardOverTransferError, ) - for row in ste_doc.items: - if not row.job_card_item: - continue - - sed = frappe.qb.DocType("Stock Entry Detail") - se = frappe.qb.DocType("Stock Entry") - transferred_qty = ( - frappe.qb.from_(sed) - .join(se) - .on(sed.parent == se.name) - .select(Sum(sed.qty)) - .where( - (sed.job_card_item == row.job_card_item) - & (se.docstatus == 1) - & (se.purpose == "Material Transfer for Manufacture") - ) - ).run()[0][0] + job_card_items_transferred_qty = _get_job_card_items_transferred_qty(ste_doc) + if job_card_items_transferred_qty: allow_excess = frappe.db.get_single_value("Manufacturing Settings", "job_card_excess_transfer") - if not allow_excess: - _validate_over_transfer(row, transferred_qty) - frappe.db.set_value("Job Card Item", row.job_card_item, "transferred_qty", flt(transferred_qty)) + for row in ste_doc.items: + if not row.job_card_item: + continue + + transferred_qty = flt(job_card_items_transferred_qty.get(row.job_card_item)) + + if not allow_excess: + _validate_over_transfer(row, transferred_qty) + + frappe.db.set_value( + "Job Card Item", row.job_card_item, "transferred_qty", flt(transferred_qty) + ) def set_transferred_qty(self, update_status=False): "Set total FG Qty in Job Card for which RM was transferred." From 7a5f7d4920a940aaa36b881ba1d7d9d9e2c45aa0 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Tue, 7 Mar 2023 01:11:23 +0530 Subject: [PATCH 269/355] perf: `update_completed_qty()` in `material_request.py` (cherry picked from commit 8ad9e99cea5e3f235d0b3ead812d2a3a11d40081) (cherry picked from commit b37712c038c65e200c5910634b49341199ab2900) --- .../material_request/material_request.py | 51 ++++++++++++------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py index bcf6dd79d8de..3548148145e9 100644 --- a/erpnext/stock/doctype/material_request/material_request.py +++ b/erpnext/stock/doctype/material_request/material_request.py @@ -10,6 +10,7 @@ import frappe from frappe import _, msgprint from frappe.model.mapper import get_mapped_doc +from frappe.query_builder.functions import Sum from frappe.utils import cint, cstr, flt, get_link_to_form, getdate, new_line_sep, nowdate from erpnext.buying.utils import check_on_hold_or_closed_status, validate_for_items @@ -183,6 +184,34 @@ def on_cancel(self): self.update_requested_qty() self.update_requested_qty_in_production_plan() + def get_mr_items_ordered_qty(self, mr_items): + mr_items_ordered_qty = {} + mr_items = [d.name for d in self.get("items") if d.name in mr_items] + + doctype = qty_field = None + if self.material_request_type in ("Material Issue", "Material Transfer", "Customer Provided"): + doctype = frappe.qb.DocType("Stock Entry Detail") + qty_field = doctype.transfer_qty + elif self.material_request_type == "Manufacture": + doctype = frappe.qb.DocType("Work Order") + qty_field = doctype.qty + + if doctype and qty_field: + query = ( + frappe.qb.from_(doctype) + .select(doctype.material_request_item, Sum(qty_field)) + .where( + (doctype.material_request == self.name) + & (doctype.material_request_item.isin(mr_items)) + & (doctype.docstatus == 1) + ) + .groupby(doctype.material_request_item) + ) + + mr_items_ordered_qty = frappe._dict(query.run()) + + return mr_items_ordered_qty + def update_completed_qty(self, mr_items=None, update_modified=True): if self.material_request_type == "Purchase": return @@ -190,18 +219,13 @@ def update_completed_qty(self, mr_items=None, update_modified=True): if not mr_items: mr_items = [d.name for d in self.get("items")] + mr_items_ordered_qty = self.get_mr_items_ordered_qty(mr_items) + mr_qty_allowance = frappe.db.get_single_value("Stock Settings", "mr_qty_allowance") + for d in self.get("items"): if d.name in mr_items: if self.material_request_type in ("Material Issue", "Material Transfer", "Customer Provided"): - d.ordered_qty = flt( - frappe.db.sql( - """select sum(transfer_qty) - from `tabStock Entry Detail` where material_request = %s - and material_request_item = %s and docstatus = 1""", - (self.name, d.name), - )[0][0] - ) - mr_qty_allowance = frappe.db.get_single_value("Stock Settings", "mr_qty_allowance") + d.ordered_qty = flt(mr_items_ordered_qty.get(d.name)) if mr_qty_allowance: allowed_qty = d.qty + (d.qty * (mr_qty_allowance / 100)) @@ -220,14 +244,7 @@ def update_completed_qty(self, mr_items=None, update_modified=True): ) elif self.material_request_type == "Manufacture": - d.ordered_qty = flt( - frappe.db.sql( - """select sum(qty) - from `tabWork Order` where material_request = %s - and material_request_item = %s and docstatus = 1""", - (self.name, d.name), - )[0][0] - ) + d.ordered_qty = flt(mr_items_ordered_qty.get(d.name)) frappe.db.set_value(d.doctype, d.name, "ordered_qty", d.ordered_qty) From cfe28663bcaad841588340a1f12d8300851dc6d2 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 7 Mar 2023 17:23:00 +0000 Subject: [PATCH 270/355] chore(release): Bumped to Version 14.18.1 ## [14.18.1](https://github.com/frappe/erpnext/compare/v14.18.0...v14.18.1) (2023-03-07) ### Performance Improvements * `update_completed_qty()` in `material_request.py` ([7a5f7d4](https://github.com/frappe/erpnext/commit/7a5f7d4920a940aaa36b881ba1d7d9d9e2c45aa0)) * Stock Entry (Material Transfer) ([59a415e](https://github.com/frappe/erpnext/commit/59a415eaa920ea3f518632d3983033b02a10fb8f)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 46f9074de771..9bf1c0aad223 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.18.0" +__version__ = "14.18.1" def get_default_company(user=None): From 1c0007768b661c6ce031a57f0c937e7a973133df Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Wed, 8 Mar 2023 12:59:50 +0530 Subject: [PATCH 271/355] fix: `BOM Stock Report` (cherry picked from commit a65b80911b0b4f29b3b0e103bf6aae92c6578d8f) --- .../bom_stock_report/bom_stock_report.py | 87 +++++++++---------- 1 file changed, 43 insertions(+), 44 deletions(-) diff --git a/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.py b/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.py index cdf1541f8881..3573a3a93d88 100644 --- a/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.py +++ b/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.py @@ -4,7 +4,8 @@ import frappe from frappe import _ -from frappe.query_builder.functions import Sum +from frappe.query_builder.functions import Floor, Sum +from frappe.utils import cint from pypika.terms import ExistsCriterion @@ -34,57 +35,55 @@ def get_columns(): def get_bom_stock(filters): - qty_to_produce = filters.get("qty_to_produce") or 1 - if int(qty_to_produce) < 0: - frappe.throw(_("Quantity to Produce can not be less than Zero")) + qty_to_produce = filters.get("qty_to_produce") + if cint(qty_to_produce) <= 0: + frappe.throw(_("Quantity to Produce should be greater than zero.")) if filters.get("show_exploded_view"): bom_item_table = "BOM Explosion Item" else: bom_item_table = "BOM Item" - bin = frappe.qb.DocType("Bin") - bom = frappe.qb.DocType("BOM") - bom_item = frappe.qb.DocType(bom_item_table) + warehouse_details = frappe.db.get_value( + "Warehouse", filters.get("warehouse"), ["lft", "rgt"], as_dict=1 + ) - query = ( - frappe.qb.from_(bom) - .inner_join(bom_item) - .on(bom.name == bom_item.parent) - .left_join(bin) - .on(bom_item.item_code == bin.item_code) + BOM = frappe.qb.DocType("BOM") + BOM_ITEM = frappe.qb.DocType(bom_item_table) + BIN = frappe.qb.DocType("Bin") + WH = frappe.qb.DocType("Warehouse") + CONDITIONS = () + + if warehouse_details: + CONDITIONS = ExistsCriterion( + frappe.qb.from_(WH) + .select(WH.name) + .where( + (WH.lft >= warehouse_details.lft) + & (WH.rgt <= warehouse_details.rgt) + & (BIN.warehouse == WH.name) + ) + ) + else: + CONDITIONS = BIN.warehouse == filters.get("warehouse") + + QUERY = ( + frappe.qb.from_(BOM) + .inner_join(BOM_ITEM) + .on(BOM.name == BOM_ITEM.parent) + .left_join(BIN) + .on((BOM_ITEM.item_code == BIN.item_code) & (CONDITIONS)) .select( - bom_item.item_code, - bom_item.description, - bom_item.stock_qty, - bom_item.stock_uom, - (bom_item.stock_qty / bom.quantity) * qty_to_produce, - Sum(bin.actual_qty), - Sum(bin.actual_qty) / (bom_item.stock_qty / bom.quantity), + BOM_ITEM.item_code, + BOM_ITEM.description, + BOM_ITEM.stock_qty, + BOM_ITEM.stock_uom, + BOM_ITEM.stock_qty * qty_to_produce / BOM.quantity, + Sum(BIN.actual_qty).as_("actual_qty"), + Sum(Floor(BIN.actual_qty / (BOM_ITEM.stock_qty * qty_to_produce / BOM.quantity))), ) - .where((bom_item.parent == filters.get("bom")) & (bom_item.parenttype == "BOM")) - .groupby(bom_item.item_code) + .where((BOM_ITEM.parent == filters.get("bom")) & (BOM_ITEM.parenttype == "BOM")) + .groupby(BOM_ITEM.item_code) ) - if filters.get("warehouse"): - warehouse_details = frappe.db.get_value( - "Warehouse", filters.get("warehouse"), ["lft", "rgt"], as_dict=1 - ) - - if warehouse_details: - wh = frappe.qb.DocType("Warehouse") - query = query.where( - ExistsCriterion( - frappe.qb.from_(wh) - .select(wh.name) - .where( - (wh.lft >= warehouse_details.lft) - & (wh.rgt <= warehouse_details.rgt) - & (bin.warehouse == wh.name) - ) - ) - ) - else: - query = query.where(bin.warehouse == filters.get("warehouse")) - - return query.run() + return QUERY.run() From df98e2531239cf19098a7b0495e21956df683f09 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Wed, 8 Mar 2023 14:00:06 +0530 Subject: [PATCH 272/355] test: add test cases for `BOM Stock Report` (cherry picked from commit b53dcb04ed2e25e4ef5398ba0fcfef6ab0049200) --- .../bom_stock_report/test_bom_stock_report.py | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 erpnext/manufacturing/report/bom_stock_report/test_bom_stock_report.py diff --git a/erpnext/manufacturing/report/bom_stock_report/test_bom_stock_report.py b/erpnext/manufacturing/report/bom_stock_report/test_bom_stock_report.py new file mode 100644 index 000000000000..1c56ebe24d4e --- /dev/null +++ b/erpnext/manufacturing/report/bom_stock_report/test_bom_stock_report.py @@ -0,0 +1,108 @@ +# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + + +import frappe +from frappe.exceptions import ValidationError +from frappe.tests.utils import FrappeTestCase +from frappe.utils import floor + +from erpnext.manufacturing.doctype.production_plan.test_production_plan import make_bom +from erpnext.manufacturing.report.bom_stock_report.bom_stock_report import ( + get_bom_stock as bom_stock_report, +) +from erpnext.stock.doctype.item.test_item import make_item +from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry + + +class TestBomStockReport(FrappeTestCase): + def setUp(self): + self.warehouse = "_Test Warehouse - _TC" + self.fg_item, self.rm_items = create_items() + make_stock_entry(target=self.warehouse, item_code=self.rm_items[0], qty=20, basic_rate=100) + make_stock_entry(target=self.warehouse, item_code=self.rm_items[1], qty=40, basic_rate=200) + self.bom = make_bom(item=self.fg_item, quantity=1, raw_materials=self.rm_items, rm_qty=10) + + def test_bom_stock_report(self): + # Test 1: When `qty_to_produce` is 0. + filters = frappe._dict( + { + "bom": self.bom.name, + "warehouse": "Stores - _TC", + "qty_to_produce": 0, + } + ) + self.assertRaises(ValidationError, bom_stock_report, filters) + + # Test 2: When stock is not available. + data = bom_stock_report( + frappe._dict( + { + "bom": self.bom.name, + "warehouse": "Stores - _TC", + "qty_to_produce": 1, + } + ) + ) + expected_data = get_expected_data(self.bom, "Stores - _TC", 1) + self.assertSetEqual(set(tuple(x) for x in data), set(tuple(x) for x in expected_data)) + + # Test 3: When stock is available. + data = bom_stock_report( + frappe._dict( + { + "bom": self.bom.name, + "warehouse": self.warehouse, + "qty_to_produce": 1, + } + ) + ) + expected_data = get_expected_data(self.bom, self.warehouse, 1) + self.assertSetEqual(set(tuple(x) for x in data), set(tuple(x) for x in expected_data)) + + +def create_items(): + fg_item = make_item(properties={"is_stock_item": 1}).name + rm_item1 = make_item( + properties={ + "is_stock_item": 1, + "standard_rate": 100, + "opening_stock": 100, + "last_purchase_rate": 100, + } + ).name + rm_item2 = make_item( + properties={ + "is_stock_item": 1, + "standard_rate": 200, + "opening_stock": 200, + "last_purchase_rate": 200, + } + ).name + + return fg_item, [rm_item1, rm_item2] + + +def get_expected_data(bom, warehouse, qty_to_produce, show_exploded_view=False): + expected_data = [] + + for item in bom.get("exploded_items") if show_exploded_view else bom.get("items"): + in_stock_qty = frappe.get_cached_value( + "Bin", {"item_code": item.item_code, "warehouse": warehouse}, "actual_qty" + ) + + expected_data.append( + [ + item.item_code, + item.description, + item.stock_qty, + item.stock_uom, + item.stock_qty * qty_to_produce / bom.quantity, + in_stock_qty, + floor(in_stock_qty / (item.stock_qty * qty_to_produce / bom.quantity)) + if in_stock_qty + else None, + ] + ) + + return expected_data From 51bcdb32f2ab7db1b8a6e5bd0f4b7e59c6d4e641 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Wed, 8 Mar 2023 20:40:03 +0530 Subject: [PATCH 273/355] fix: `required_qty` get reset to `1` for Alternative Item in WO (cherry picked from commit 046834a97aaab40fc6e606328bf18cc4df99f71f) --- erpnext/manufacturing/doctype/work_order/work_order.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/manufacturing/doctype/work_order/work_order.js b/erpnext/manufacturing/doctype/work_order/work_order.js index 4aff42cb73d7..97480b294546 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.js +++ b/erpnext/manufacturing/doctype/work_order/work_order.js @@ -506,7 +506,7 @@ frappe.ui.form.on("Work Order Item", { callback: function(r) { if (r.message) { frappe.model.set_value(cdt, cdn, { - "required_qty": 1, + "required_qty": row.required_qty || 1, "item_name": r.message.item_name, "description": r.message.description, "source_warehouse": r.message.default_warehouse, From c734a78f3ce655774f7b4d0ef726ff52c64ee2e6 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Wed, 8 Mar 2023 20:07:30 +0530 Subject: [PATCH 274/355] chore: `Alternative Item Code` error msg (cherry picked from commit baef5ae1efcf096dcaa9b4d7c06f800330014ba7) --- erpnext/stock/doctype/item_alternative/item_alternative.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/item_alternative/item_alternative.py b/erpnext/stock/doctype/item_alternative/item_alternative.py index fb1a28d846bd..0c24d3c780f1 100644 --- a/erpnext/stock/doctype/item_alternative/item_alternative.py +++ b/erpnext/stock/doctype/item_alternative/item_alternative.py @@ -54,7 +54,7 @@ def validate_alternative_item(self): if not item_data.allow_alternative_item: frappe.throw(alternate_item_check_msg.format(self.item_code)) if self.two_way and not alternative_item_data.allow_alternative_item: - frappe.throw(alternate_item_check_msg.format(self.item_code)) + frappe.throw(alternate_item_check_msg.format(self.alternative_item_code)) def validate_duplicate(self): if frappe.db.get_value( From ed338b13952ea65e727b8741d8ad2844646b6ecd Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 9 Mar 2023 15:39:56 +0530 Subject: [PATCH 275/355] Revert "fix: Default sales team not getting set" (#34376) Revert "fix: Default sales team not getting set" (#34376) Revert "fix: Default sales team not getting set (#34284)" This reverts commit 7d0199d743c7861e883cadd582c036cc8d9b0a62. (cherry picked from commit 9a8f8e8b7da532499a8916755a915d2da8081577) Co-authored-by: Deepesh Garg --- erpnext/controllers/selling_controller.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index 1a81158b366d..590e00fb11e5 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -87,9 +87,6 @@ def set_missing_lead_customer_details(self, for_validate=False): ) if not self.meta.get_field("sales_team"): party_details.pop("sales_team") - else: - self.set("sales_team", party_details.get("sales_team")) - self.update_if_missing(party_details) elif lead: From f71d85d7c3dcf298b42c224e98386cfc624b3a80 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 9 Mar 2023 15:39:56 +0530 Subject: [PATCH 276/355] Revert "fix: Default sales team not getting set" (#34376) Revert "fix: Default sales team not getting set" (#34376) Revert "fix: Default sales team not getting set (#34284)" This reverts commit 7d0199d743c7861e883cadd582c036cc8d9b0a62. (cherry picked from commit 9a8f8e8b7da532499a8916755a915d2da8081577) Co-authored-by: Deepesh Garg (cherry picked from commit ed338b13952ea65e727b8741d8ad2844646b6ecd) --- erpnext/controllers/selling_controller.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index 1a81158b366d..590e00fb11e5 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -87,9 +87,6 @@ def set_missing_lead_customer_details(self, for_validate=False): ) if not self.meta.get_field("sales_team"): party_details.pop("sales_team") - else: - self.set("sales_team", party_details.get("sales_team")) - self.update_if_missing(party_details) elif lead: From fcbcbc0aa7fffbfe732818768ecd5ed32fd4fda8 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Thu, 9 Mar 2023 10:26:37 +0000 Subject: [PATCH 277/355] chore(release): Bumped to Version 14.18.2 ## [14.18.2](https://github.com/frappe/erpnext/compare/v14.18.1...v14.18.2) (2023-03-09) ### Reverts * Revert "fix: Default sales team not getting set" (#34376) ([f71d85d](https://github.com/frappe/erpnext/commit/f71d85d7c3dcf298b42c224e98386cfc624b3a80)), closes [#34376](https://github.com/frappe/erpnext/issues/34376) [#34376](https://github.com/frappe/erpnext/issues/34376) [#34284](https://github.com/frappe/erpnext/issues/34284) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 9bf1c0aad223..6976133ba421 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.18.1" +__version__ = "14.18.2" def get_default_company(user=None): From 27c524e337eecf29dc10cd25a0a8f49edfba52fe Mon Sep 17 00:00:00 2001 From: gavin Date: Thu, 9 Mar 2023 16:05:37 +0530 Subject: [PATCH 278/355] fix: Don't use get_list & get_all interchangeably fix: Fetch all fields via get_returned_qty_map_for_row --- erpnext/controllers/sales_and_purchase_return.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py index 341d51b8a5fb..15c270e58adc 100644 --- a/erpnext/controllers/sales_and_purchase_return.py +++ b/erpnext/controllers/sales_and_purchase_return.py @@ -305,7 +305,7 @@ def get_returned_qty_map_for_row(return_against, party, row_name, doctype): fields += ["sum(abs(`tab{0}`.received_stock_qty)) as received_stock_qty".format(child_doctype)] # Used retrun against and supplier and is_retrun because there is an index added for it - data = frappe.db.get_list( + data = frappe.get_all( doctype, fields=fields, filters=[ From 6ef7ddfbce271e35123b32bbbe5f605c9b516d1a Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 9 Mar 2023 22:12:35 +0530 Subject: [PATCH 279/355] fix: filters not getting applied on `Web Form` (cherry picked from commit 9c1e5663949b6469db47e12f3174b4de7c9b1cd0) --- erpnext/controllers/website_list_for_contact.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/erpnext/controllers/website_list_for_contact.py b/erpnext/controllers/website_list_for_contact.py index 467323035ea5..7c3c38706dc8 100644 --- a/erpnext/controllers/website_list_for_contact.py +++ b/erpnext/controllers/website_list_for_contact.py @@ -76,12 +76,9 @@ def get_transaction_list( ignore_permissions = False if not filters: - filters = [] + filters = {} - if doctype in ["Supplier Quotation", "Purchase Invoice"]: - filters.append((doctype, "docstatus", "<", 2)) - else: - filters.append((doctype, "docstatus", "=", 1)) + filters["docstatus"] = ["<", "2"] if doctype in ["Supplier Quotation", "Purchase Invoice"] else 1 if (user != "Guest" and is_website_user()) or doctype == "Request for Quotation": parties_doctype = ( @@ -92,12 +89,12 @@ def get_transaction_list( if customers: if doctype == "Quotation": - filters.append(("quotation_to", "=", "Customer")) - filters.append(("party_name", "in", customers)) + filters["quotation_to"] = "Customer" + filters["party_name"] = ["in", customers] else: - filters.append(("customer", "in", customers)) + filters["customer"] = ["in", customers] elif suppliers: - filters.append(("supplier", "in", suppliers)) + filters["supplier"] = ["in", suppliers] elif not custom: return [] @@ -110,7 +107,7 @@ def get_transaction_list( if not customers and not suppliers and custom: ignore_permissions = False - filters = [] + filters = {} transactions = get_list_for_transactions( doctype, From 69a5411f0ebcc4bbcfb36b3470753e4c556fea1d Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Mon, 6 Mar 2023 20:14:50 +0530 Subject: [PATCH 280/355] fix(test): flaky test case in Payment terms report (cherry picked from commit 7fcd74ed03d93d78bfd984ce351e2395ab7ff0d5) --- ...st_payment_terms_status_for_sales_order.py | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/erpnext/selling/report/payment_terms_status_for_sales_order/test_payment_terms_status_for_sales_order.py b/erpnext/selling/report/payment_terms_status_for_sales_order/test_payment_terms_status_for_sales_order.py index 525ae8e7ea72..58516f6f625a 100644 --- a/erpnext/selling/report/payment_terms_status_for_sales_order/test_payment_terms_status_for_sales_order.py +++ b/erpnext/selling/report/payment_terms_status_for_sales_order/test_payment_terms_status_for_sales_order.py @@ -2,7 +2,7 @@ import frappe from frappe.tests.utils import FrappeTestCase -from frappe.utils import add_days, nowdate +from frappe.utils import add_days, add_months, nowdate from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order @@ -15,9 +15,16 @@ class TestPaymentTermsStatusForSalesOrder(FrappeTestCase): + def setUp(self): + self.cleanup_old_entries() + def tearDown(self): frappe.db.rollback() + def cleanup_old_entries(self): + frappe.db.delete("Sales Invoice", filters={"company": "_Test Company"}) + frappe.db.delete("Sales Order", filters={"company": "_Test Company"}) + def create_payment_terms_template(self): # create template for 50-50 payments template = None @@ -348,7 +355,7 @@ def test_04_due_date_filter(self): item = create_item(item_code="_Test Excavator 1", is_stock_item=0) transaction_date = nowdate() so = make_sales_order( - transaction_date=add_days(transaction_date, -30), + transaction_date=add_months(transaction_date, -1), delivery_date=add_days(transaction_date, -15), item=item.item_code, qty=10, @@ -369,13 +376,15 @@ def test_04_due_date_filter(self): sinv.items[0].qty = 6 sinv.insert() sinv.submit() + + first_due_date = add_days(add_months(transaction_date, -1), 15) columns, data, message, chart = execute( frappe._dict( { "company": "_Test Company", "item": item.item_code, - "from_due_date": add_days(transaction_date, -30), - "to_due_date": add_days(transaction_date, -15), + "from_due_date": add_months(transaction_date, -1), + "to_due_date": first_due_date, } ) ) @@ -384,11 +393,11 @@ def test_04_due_date_filter(self): { "name": so.name, "customer": so.customer, - "submitted": datetime.date.fromisoformat(add_days(transaction_date, -30)), + "submitted": datetime.date.fromisoformat(add_months(transaction_date, -1)), "status": "Completed", "payment_term": None, "description": "_Test 50-50", - "due_date": datetime.date.fromisoformat(add_days(transaction_date, -15)), + "due_date": datetime.date.fromisoformat(first_due_date), "invoice_portion": 50.0, "currency": "INR", "base_payment_amount": 500000.0, From c64836d3d63b433f6a1df280670fa7b22a8c157f Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 11 Mar 2023 19:05:26 +0530 Subject: [PATCH 281/355] fix: Set contact filter link in Opportunity (#34325) fix: Set contact filter link in Opportunity (#34325) Co-authored-by: Nihantra C. Patel (cherry picked from commit 71de72bdd06301be0d18a19bbdee32d5d8f18f7c) Co-authored-by: Solufyin <34390782+Solufyin@users.noreply.github.com> --- erpnext/crm/doctype/opportunity/opportunity.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/erpnext/crm/doctype/opportunity/opportunity.js b/erpnext/crm/doctype/opportunity/opportunity.js index 1f76a1ae2eb0..b2617955a367 100644 --- a/erpnext/crm/doctype/opportunity/opportunity.js +++ b/erpnext/crm/doctype/opportunity/opportunity.js @@ -19,10 +19,6 @@ frappe.ui.form.on("Opportunity", { } } }); - - if (frm.doc.opportunity_from && frm.doc.party_name){ - frm.trigger('set_contact_link'); - } }, validate: function(frm) { @@ -130,6 +126,10 @@ frappe.ui.form.on("Opportunity", { } else { frappe.contacts.clear_address_and_contact(frm); } + + if (frm.doc.opportunity_from && frm.doc.party_name) { + frm.trigger('set_contact_link'); + } }, set_contact_link: function(frm) { @@ -137,6 +137,8 @@ frappe.ui.form.on("Opportunity", { frappe.dynamic_link = {doc: frm.doc, fieldname: 'party_name', doctype: 'Customer'} } else if(frm.doc.opportunity_from == "Lead" && frm.doc.party_name) { frappe.dynamic_link = {doc: frm.doc, fieldname: 'party_name', doctype: 'Lead'} + } else if (frm.doc.opportunity_from == "Prospect" && frm.doc.party_name) { + frappe.dynamic_link = {doc: frm.doc, fieldname: 'party_name', doctype: 'Prospect'} } }, From e6de87a1b74af55d4dbfa248e7cde5093e950961 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Thu, 9 Mar 2023 19:42:28 +0530 Subject: [PATCH 282/355] refactor(patch): remove inner join to improve SQL performance (cherry picked from commit f9cfabf78e267824ff3c8523fc197b270cdcd015) --- .../v14_0/migrate_gl_to_payment_ledger.py | 49 ++++++++++--------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py b/erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py index 853a99a48959..c641b6bfb9c5 100644 --- a/erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py +++ b/erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py @@ -1,6 +1,6 @@ import frappe from frappe import qb -from frappe.query_builder import Case, CustomFunction +from frappe.query_builder import CustomFunction from frappe.query_builder.custom import ConstantColumn from frappe.query_builder.functions import Count, IfNull from frappe.utils import flt @@ -18,9 +18,21 @@ def create_accounting_dimension_fields(): make_dimension_in_accounting_doctypes(dimension, ["Payment Ledger Entry"]) -def generate_name_for_payment_ledger_entries(gl_entries, start): +def generate_name_and_calculate_amount(gl_entries, start, receivable_accounts): for index, entry in enumerate(gl_entries, 0): entry.name = start + index + if entry.account in receivable_accounts: + entry.account_type = "Receivable" + entry.amount = entry.debit - entry.credit + entry.amount_in_account_currency = ( + entry.debit_in_account_currency - entry.credit_in_account_currency + ) + else: + entry.account_type = "Payable" + entry.amount = entry.credit - entry.debit + entry.amount_in_account_currency = ( + entry.credit_in_account_currency - entry.debit_in_account_currency + ) def get_columns(): @@ -99,12 +111,17 @@ def execute(): ifelse = CustomFunction("IF", ["condition", "then", "else"]) # Get Records Count - accounts = ( + relavant_accounts = ( qb.from_(account) - .select(account.name) + .select(account.name, account.account_type) .where((account.account_type == "Receivable") | (account.account_type == "Payable")) .orderby(account.name) + .run(as_dict=True) ) + + receivable_accounts = [x.name for x in relavant_accounts if x.account_type == "Receivable"] + accounts = [x.name for x in relavant_accounts] + un_processed = ( qb.from_(gl) .select(Count(gl.name)) @@ -122,37 +139,21 @@ def execute(): while True: if last_name: - where_clause = gl.name.gt(last_name) & (gl.is_cancelled == 0) + where_clause = gl.name.gt(last_name) & gl.account.isin(accounts) & gl.is_cancelled == 0 else: - where_clause = gl.is_cancelled == 0 + where_clause = gl.account.isin(accounts) & gl.is_cancelled == 0 gl_entries = ( qb.from_(gl) - .inner_join(account) - .on((gl.account == account.name) & (account.account_type.isin(["Receivable", "Payable"]))) .select( gl.star, ConstantColumn(1).as_("docstatus"), - account.account_type.as_("account_type"), IfNull( ifelse(gl.against_voucher_type == "", None, gl.against_voucher_type), gl.voucher_type ).as_("against_voucher_type"), IfNull(ifelse(gl.against_voucher == "", None, gl.against_voucher), gl.voucher_no).as_( "against_voucher_no" ), - # convert debit/credit to amount - Case() - .when(account.account_type == "Receivable", gl.debit - gl.credit) - .else_(gl.credit - gl.debit) - .as_("amount"), - # convert debit/credit in account currency to amount in account currency - Case() - .when( - account.account_type == "Receivable", - gl.debit_in_account_currency - gl.credit_in_account_currency, - ) - .else_(gl.credit_in_account_currency - gl.debit_in_account_currency) - .as_("amount_in_account_currency"), ) .where(where_clause) .orderby(gl.name) @@ -163,8 +164,8 @@ def execute(): if gl_entries: last_name = gl_entries[-1].name - # primary key(name) for payment ledger records - generate_name_for_payment_ledger_entries(gl_entries, processed) + # add primary key(name) and calculate based on debit and credit + generate_name_and_calculate_amount(gl_entries, processed, receivable_accounts) try: insert_query = build_insert_query() From 0ef1d1b2aeda1e4aaa07830cabe15e87eafff692 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Fri, 10 Mar 2023 15:49:53 +0530 Subject: [PATCH 283/355] refactor: add remarks to column as well (cherry picked from commit 1744f1d4e490076845f2dfe7a833adfad3672a33) --- erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py b/erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py index c641b6bfb9c5..72c8c074d2c9 100644 --- a/erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py +++ b/erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py @@ -61,6 +61,9 @@ def get_columns(): "finance_book", ] + if frappe.db.has_column("Payment Ledger Entry", "remarks"): + columns.append("remarks") + dimensions_and_defaults = get_dimensions() if dimensions_and_defaults: for dimension in dimensions_and_defaults[0]: From 0b184667fcd3c037cfb37e2ad51f4064c6f358ca Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Fri, 10 Mar 2023 20:53:13 +0530 Subject: [PATCH 284/355] chore: remove remarks migrations patch from patches.txt 'Remarks' field is moved in migrate_gl_to_payment_ledger patch itself from versions highers than v14.18.2. Removing it from patches.txt (cherry picked from commit 9d0a1149d86f0c492fed93423625fe71a577c904) --- erpnext/patches.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/erpnext/patches.txt b/erpnext/patches.txt index adebe2b8ee95..3c0eb5107ce9 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -325,6 +325,5 @@ erpnext.patches.v14_0.update_entry_type_for_journal_entry erpnext.patches.v14_0.change_autoname_for_tax_withheld_vouchers erpnext.patches.v14_0.update_asset_value_for_manual_depr_entries erpnext.patches.v14_0.set_pick_list_status -# below 2 migration patches should always run last +# below 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 From 502a45e54f02777c90305b35330abae96a50c789 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Sun, 12 Mar 2023 11:05:49 +0530 Subject: [PATCH 285/355] chore: delete remarks migration patch Versions higher than V14.18.2, 'remarks' will be moved in 'migrate_gl_to_payment_ledger' (cherry picked from commit da37573b731443402ee68e0987af84a198847f65) --- ...grate_remarks_from_gl_to_payment_ledger.py | 98 ------------------- 1 file changed, 98 deletions(-) delete mode 100644 erpnext/patches/v14_0/migrate_remarks_from_gl_to_payment_ledger.py diff --git a/erpnext/patches/v14_0/migrate_remarks_from_gl_to_payment_ledger.py b/erpnext/patches/v14_0/migrate_remarks_from_gl_to_payment_ledger.py deleted file mode 100644 index 9d216c4028c5..000000000000 --- a/erpnext/patches/v14_0/migrate_remarks_from_gl_to_payment_ledger.py +++ /dev/null @@ -1,98 +0,0 @@ -import frappe -from frappe import qb -from frappe.query_builder import CustomFunction -from frappe.query_builder.functions import Count, IfNull -from frappe.utils import flt - - -def execute(): - """ - Migrate 'remarks' field from 'tabGL Entry' to 'tabPayment Ledger Entry' - """ - - if frappe.reload_doc("accounts", "doctype", "payment_ledger_entry"): - - gle = qb.DocType("GL Entry") - ple = qb.DocType("Payment Ledger Entry") - - # Get empty PLE records - un_processed = ( - qb.from_(ple).select(Count(ple.name)).where((ple.remarks.isnull()) & (ple.delinked == 0)).run() - )[0][0] - - if un_processed: - print(f"Remarks for {un_processed} Payment Ledger records will be updated from GL Entry") - - ifelse = CustomFunction("IF", ["condition", "then", "else"]) - - processed = 0 - last_percent_update = 0 - batch_size = 1000 - last_name = None - - while True: - if last_name: - where_clause = (ple.name.gt(last_name)) & (ple.remarks.isnull()) & (ple.delinked == 0) - else: - where_clause = (ple.remarks.isnull()) & (ple.delinked == 0) - - # results are deterministic - names = ( - qb.from_(ple).select(ple.name).where(where_clause).orderby(ple.name).limit(batch_size).run() - ) - - if names: - last_name = names[-1][0] - - pl_entries = ( - qb.from_(ple) - .left_join(gle) - .on( - (ple.account == gle.account) - & (ple.party_type == gle.party_type) - & (ple.party == gle.party) - & (ple.voucher_type == gle.voucher_type) - & (ple.voucher_no == gle.voucher_no) - & ( - ple.against_voucher_type - == IfNull( - ifelse(gle.against_voucher_type == "", None, gle.against_voucher_type), gle.voucher_type - ) - ) - & ( - ple.against_voucher_no - == IfNull(ifelse(gle.against_voucher == "", None, gle.against_voucher), gle.voucher_no) - ) - & (ple.company == gle.company) - & ( - ((ple.account_type == "Receivable") & (ple.amount == (gle.debit - gle.credit))) - | (ple.account_type == "Payable") & (ple.amount == (gle.credit - gle.debit)) - ) - & (gle.remarks.notnull()) - & (gle.is_cancelled == 0) - ) - .select(ple.name) - .distinct() - .select( - gle.remarks.as_("gle_remarks"), - ) - .where(ple.name.isin(names)) - .run(as_dict=True) - ) - - if pl_entries: - for entry in pl_entries: - query = qb.update(ple).set(ple.remarks, entry.gle_remarks).where((ple.name == entry.name)) - query.run() - - frappe.db.commit() - - processed += len(pl_entries) - percentage = flt((processed / un_processed) * 100, 2) - if percentage - last_percent_update > 1: - print(f"{percentage}% ({processed}) PLE records updated") - last_percent_update = percentage - - else: - break - print("Remarks succesfully migrated") From 73866f4da7487d7f8fdb815d69fbe6d2cb63764e Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 14:03:02 +0530 Subject: [PATCH 286/355] fix: Error in consolidated financial statement (#34330) fix: Error in consolidated financial statement (#34330) (cherry picked from commit aae53bb9106401904449b0c5315939e7d1beef1e) Co-authored-by: Deepesh Garg --- .../consolidated_financial_statement.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py index 560b79243d70..9a3e82486afc 100644 --- a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py +++ b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py @@ -138,7 +138,8 @@ def prepare_companywise_opening_balance(asset_data, liability_data, equity_data, for data in [asset_data, liability_data, equity_data]: if data: account_name = get_root_account_name(data[0].root_type, company) - opening_value += get_opening_balance(account_name, data, company) or 0.0 + if account_name: + opening_value += get_opening_balance(account_name, data, company) or 0.0 opening_balance[company] = opening_value @@ -155,7 +156,7 @@ def get_opening_balance(account_name, data, company): def get_root_account_name(root_type, company): - return frappe.get_all( + root_account = frappe.get_all( "Account", fields=["account_name"], filters={ @@ -165,7 +166,10 @@ def get_root_account_name(root_type, company): "parent_account": ("is", "not set"), }, as_list=1, - )[0][0] + ) + + if root_account: + return root_account[0][0] def get_profit_loss_data(fiscal_year, companies, columns, filters): From 5266a7e8a75f00b53b7587ede181f7c2e7f3ee3c Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 14:03:38 +0530 Subject: [PATCH 287/355] Update tr.csv (#34285) chore: Improve Turkish language translation chore: Improve Turkish language translation (cherry picked from commit fa6d37542b73733b7354f2ba58e6312098945c95) Co-authored-by: Mehmet Demirel --- erpnext/translations/tr.csv | 8776 ++++++++++++++++++----------------- 1 file changed, 4534 insertions(+), 4242 deletions(-) diff --git a/erpnext/translations/tr.csv b/erpnext/translations/tr.csv index b65494ce32b0..3fade8988925 100644 --- a/erpnext/translations/tr.csv +++ b/erpnext/translations/tr.csv @@ -24,66 +24,66 @@ A question must have more than one options,Bir sorunun birden fazla seçeneği o A qustion must have at least one correct options,Bir soru en az bir doğru seçeneğe sahip olmalıdır, A {0} exists between {1} and {2} (,{1} ve {2} arasında bir {0} var (, A4,A4, -API Endpoint,API Bitiş Noktası, -API Key,API Anahtarı, +API Endpoint,API Endpoint, +API Key,API Key, Abbr can not be blank or space,Kısaltma boş veya boşluktan oluşamaz, Abbreviation already used for another company,Kısaltma zaten başka bir şirket için kullanılıyor, -Abbreviation cannot have more than 5 characters,Kısaltma 5 karakterden fazla olamaz., +Abbreviation cannot have more than 5 characters,Kısaltma 5 karakterden fazlası olamaz., Abbreviation is mandatory,Kısaltma zorunludur, About the Company,Şirket hakkında, About your company,Şirketiniz hakkında, -Above,yukarıdaki, +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 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 tipi, +Account,Hesap, +Account Number,Hesap Numarası, +Account Number {0} already used in account {1},{1} hesapta {0} hesap numarası zaten sınırları, +Account Pay Only,Sadece Ödeme Hesabı, +Account Type,Hesap Türü, 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., +"Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'",Bakiye borçlu durumdaysa alacaklı durumuna çevrilemez., Account number for account {0} is not available.
Please setup your Chart of Accounts correctly.,Hesap {0} için hesap numarası mevcut değil.
Lütfen Hesap Tablonuzu doğru ayarlayın., Account with child nodes cannot be converted to ledger,Alt hesapları bulunan hesaplar muhasebe defterine dönüştürülemez., Account with child nodes cannot be set as ledger,Alt düğümleri olan hesaplar Hesap Defteri olarak ayarlanamaz, -Account with existing transaction can not be converted to group.,İşlem görmüş hesaplar gruba dönüştürülemez., +Account with existing transaction can not be converted to group.,İşlem görmüş hesap kartları dönüştürülemez., Account with existing transaction can not be deleted,İşlem görmüş hesaplar silinemez., Account with existing transaction cannot be converted to ledger,İşlem görmüş hesaplar muhasebe defterine dönüştürülemez., Account {0} does not belong to company: {1},Hesap {0} Şirkete ait değil: {1}, Account {0} does not belongs to company {1},Hesap {0} yapan şirkete ait değil {1}, Account {0} does not exist,Hesap {0} yok, Account {0} does not exists,Hesap {0} yok, -Account {0} does not match with Company {1} in Mode of Account: {2},"Hesap {0}, Şirket {1} Hesap Modu'yla eşleşmiyor: {2}", +Account {0} does not match with Company {1} in Mode of Account: {2},"Hesap {0}, hesap modunda {1} şirketi ile eşleşmez: {2}", Account {0} has been entered multiple times,Hesap {0} birden çok kez girilmiş, -Account {0} is added in the child company {1},{1} alt şirketine {0} hesabı eklendi, +Account {0} is added in the child company {1},{1} alt barındırma {0} hesabı eklendi, Account {0} is frozen,Hesap {0} donduruldu, -Account {0} is invalid. Account Currency must be {1},Hesap {0} geçersiz. Hesap Para olmalıdır {1}, +Account {0} is invalid. Account Currency must be {1},Hesap {0} geçersiz. Hesap Para Birimi olmalıdır {1}, Account {0}: Parent account {1} can not be a ledger,Hesap {0}: Ana hesap {1} bir defter olamaz, Account {0}: Parent account {1} does not belong to company: {2},Hesap {0}: Ana hesap {1} şirkete ait değil: {2}, Account {0}: Parent account {1} does not exist,Hesap {0}: Ana hesap {1} yok, -Account {0}: You can not assign itself as parent account,Hesap {0}: Kendisini bir ana hesap olarak atayamazsınız, +Account {0}: You can not assign itself as parent account,Hesap {0}: üretken bir ana hesap olarak atayamazsınız, Account: {0} can only be updated via Stock Transactions,Hesap: {0} sadece Stok İşlemleri üzerinden güncellenebilir, Account: {0} with currency: {1} can not be selected,Hesap: {0} para ile: {1} seçilemez, Accountant,Muhasebeci, Accounting,Muhasebe, -Accounting Entry for Asset,Varlıklar için Muhasebe Girişi, -Accounting Entry for Stock,Stokta Muhasebe Giriş, -Accounting Entry for {0}: {1} can only be made in currency: {2},{1} sadece para yapılabilir: {0} Muhasebe Kayıt {2}, -Accounting Ledger,Muhasebe defteri, -Accounting journal entries.,Muhasebe günlük girişleri., +Accounting Entry for Asset,Varlık Muhasebe Kaydı, +Accounting Entry for Stock,Stok Muhasebe Kaydı, +Accounting Entry for {0}: {1} can only be made in currency: {2},{1} sadece para için yapılabilir: {0} Muhasebe Kayıt {2}, +Accounting Ledger,muhasebe defteri, +Accounting journal entries.,Muhasebe yevmiye kayıtları., Accounts,Hesaplar, Accounts Manager,Hesap Yöneticisi, -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 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 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,48 +91,48 @@ Accumulated Depreciation Amount,Birikmiş Amortisman Tutarı, 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'nde Birikmiş Değerler, Achieved ({}),Elde Edildi ({}), -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, +Action,İşlem, +Action Initialised,İşlem Başlatıldı, +Actions,İşlemler, +Active,Aktif, +Activity Cost exists for Employee {0} against Activity Type - {1},Çalışan {0} için Faaliyet Türü - {1} karşılığında Faaliyet Maliyeti var, +Activity Cost per Employee,Çalışan Başına Faaliyet Maliyeti, Activity Type,Faaliyet Türü, -Actual Cost,Asıl maliyet, +Actual Cost,Fiili Maliyet, Actual Delivery Date,Gerçek teslim tarihi, -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,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 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(ler) Ekle, -Add Employees,Çalışan ekle, +Add Customers,Müşteri 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 Ekleme, +Add Students,Öğrenci Ekle, +Add Suppliers,Tedarikçi Ekle, +Add Time Slots,Zaman Dilimi Ekle, Add Timesheets,Zaman Çizelgesi Ekle, Add Timeslots,Zaman Dilimi Ekle, -Add Users to Marketplace,Kullanıcıları Pazara Eklemek, +Add Users to Marketplace,Kullanıcıları Pazaryerine Ekle, 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 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/Remove Recipients,Alıcı Ekle/Kaldır, +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üşterileri portalınıza ilave ederek, bunları kişilerden ekleyerek de ekleyebilirsiniz.", +Add to Details,Ayrıntılara Ekle, +Add/Remove Recipients,Alıcıları Ekle/Kaldır, Added,Eklendi, Added to details,Ayrıntılara eklendi, Added {0} users,{0} kullanıcı eklendi, @@ -142,13 +142,13 @@ Address Line 2,Adres Satırı 2, 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, Admission and Enrollment,Kabul ve Kayıt, Admissions for {0},{0} için kabul, -Admit,Kabul et, +Admit,Başvur, Admitted,Başvuruldu, Advance Amount,Avans Tutarı, Advance Payments,Avans Ödemeleri, @@ -157,12 +157,12 @@ Advance amount cannot be greater than {0} {1},Peşin miktar daha büyük olamaz 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ığı, -Against Voucher,Dekont karşılığı, -Against Voucher Type,Dekont Tipi karşılığı, +Against Voucher,Fiş Karşılığı, +Against Voucher Type,Fiş Tipi Karşılığı, Age,Yaş, Age (Days),Yaş (Gün), Ageing Based On,Yaşlandırma Temeli, @@ -172,70 +172,70 @@ Ageing Range 3,Yaşlanma aralığı 3, Agriculture,Tarım, Agriculture (beta),Tarım (beta), Airline,Havayolu, -All Accounts,Bütün hesaplar, -All Addresses.,Tüm adresler., -All Assessment Groups,Bütün Değerlendirme Grupları, -All BOMs,Tüm malzeme listeleri, -All Contacts.,Tüm Kişiler., -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 Accounts,Tüm Hesaplar, +All Addresses.,Tüm Adresler, +All Assessment Groups,Tüm Değerlendirme Grupları, +All BOMs,Tüm Ürün Ağaçları, +All Contacts.,Tüm Kişiler, +All Customer Groups,Tüm Müşteri Grupları, +All Day,Tüm Gün, +All Departments,Tüm Departmanlar, All Healthcare Service Units,Tüm Sağlık Hizmeti Birimleri, -All Item Groups,Bütün Ürün Grupları, +All Item Groups,Tüm Ürün Grupları, All Jobs,Tüm işler, -All Products,Tüm ürünler, -All Products or Services.,Bütün Ürünler veya Hizmetler., +All Products,Tüm Ürünler, +All Products or Services.,Tüm Ü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,Bütün Bölgeler, +All Territories,Tüm 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 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ış Yapraklar, -Allocating leaves...,Yaprakları tahsis ..., +Allocated Amount,Ayrılan Tutar, +Allocated Leaves,Ayrılmış İzinler, +Allocating leaves...,İzinler tahsis ediliyor ..., 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, Alternative item must not be same as item code,"Alternatif öğe, ürün koduyla aynı olmamalıdır", Amended From,İtibaren değiştirilmiş, Amount,Tutar, -Amount After Depreciation,Değer kaybı sonrası miktar, +Amount After Depreciation,Değer kaybı sonrası tutar, Amount of Integrated Tax,Entegre Vergi Miktarı, -Amount of TDS Deducted,TDS'den Düşülen Tutar, +Amount of TDS Deducted,TDS'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} against {2} {3},Miktar {0} {2} yani {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}, -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., +Amt,Tutar, +"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 etiketine bakın", +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ştirin 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, +"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 grubunu veya çıldırtıcı etiketini", +Analyst,Analist, Analytics,Analitikler, Annual Billing: {0},Yıllık Fatura: {0}, -Annual Salary,Yıllık gelir, +Annual Salary,Yıllık Maaş, 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} '{2}' karşı bir başka bütçe kitabı '{0}' zaten var ve {4} mali yılı için '{3}' hesap 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, +Another Sales Person {0} exists with the same Employee id,Başka Satış Kişi {0} aynı çalışan pozisyonu ile var, Antibiotic,Antibiyotik, Apparel & Accessories,Giyim ve Aksesuar, -Applicable For,İçin uygulanabilir, +Applicable For,Uygulanabilir:, "Applicable if the company is SpA, SApA or SRL","Şirket SpA, SApA veya SRL ise uygulanabilir", -Applicable if the company is a limited liability company,Şirket limited şirket ise uygulanabilir, +Applicable if the company is a limited liability company,Şirket limited şirketi ise uygulanabilir, Applicable if the company is an Individual or a Proprietorship,Şirket Birey veya Mülkiyet ise uygulanabilir, -Applicant,Başvuru sahibi, +Applicant,Başvuru Sahibi, Applicant Type,Başvuru Sahibi Türü, -Application of Funds (Assets),Fon (varlık) başvurusu, -Application period cannot be across two allocation records,Başvuru süresi iki tahsis kaydı boyunca olamaz, +Application of Funds (Assets),fon (varlık) çalışması, +Application period cannot be across two allocation records,Başvuru süresi iki ödenek boyunca kaydırılamaz, Application period cannot be outside leave allocation period,Uygulama süresi dışında izin tahsisi dönemi olamaz, Applied,Başvuruldu, Apply Now,Şimdi Başvur, @@ -245,35 +245,35 @@ Appointment Type,Randevu Türü, Appointment {0} and Sales Invoice {1} cancelled,Randevu {0} ve Satış Faturası {1} iptal edildi, Appointments and Encounters,Randevular ve Karşılaşmalar, Appointments and Patient Encounters,Randevular ve Hasta Buluşmaları, -Appraisal {0} created for Employee {1} in the given date range,Verilen aralıkta Çalışan {1} için oluşturulan değerlendirme {0}, +Appraisal {0} created for Employee {1} in the given date range,Verilen aralıkta çalışan {1} için çalıştırılan değerlendirme {0}, Apprentice,Çırak, Approval Status,Onay Durumu, Approval Status must be 'Approved' or 'Rejected',Onay Durumu 'Onaylandı' veya 'Reddedildi' olmalıdır, Approve,Onayla, -Approving Role cannot be same as role the rule is Applicable To,Onaylama Rolü kuralın uygulanabilir olduğu rolle aynı olamaz, -Approving User cannot be same as user the rule is Applicable To,Onaylayan Kullanıcı kuralın uygulanabilir olduğu kullanıcı ile aynı olamaz, -"Apps using current key won't be able to access, are you sure?","Geçerli anahtarı kullanan uygulamalar erişemez, emin misiniz?", +Approving Role cannot be same as role the rule is Applicable To,Onaylayan Rol kuralın geçerli olduğu rolle aynı olamaz, +Approving User cannot be same as user the rule is Applicable To,Onaylayan Kullanıcı kuralın Uygulandığı Kullanıcı ile aynı olamaz, +"Apps using current key won't be able to access, are you sure?","Geçerli anahtarı kullanan uygulamalar erişemeyecek, 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, +Arrear,Borç/Bakiye, +As Examiner,Denetmen 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 rules 42 & 43 of CGST Rules,CGST Kurallarının 42 ve 43 numaralı kuralları yönetmeliği, +As per section 17(5),Bölüm 17'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 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., Asset,Varlık, Asset Category,Varlık Kategorisi, -Asset Category is mandatory for Fixed Asset item,Sabit Varlık için Varlık Kategorisi zorunludur, +Asset Category is mandatory for Fixed Asset item,Sabit Kıymet için Varlık Kategorisi zorunludur, Asset Maintenance,Varlık Bakımı, Asset Movement,Varlık Hareketi, Asset Movement record {0} created,Varlık Hareket kaydı {0} oluşturuldu, @@ -281,25 +281,25 @@ Asset Name,Varlık Adı, 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, Kayıt Girdisi {0} ile hurda edildi", +Asset scrapped via Journal Entry {0},"Varlık, Yevmiye Kaydı {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,Atamak, +Assign,Ata, Assign Salary Structure,Maaş Yapısı Atama, Assign To,Ata, -Assign to Employees,Çalışanlara ata, -Assigning Structures...,Yapılara ata..., -Associate,ortak, +Assign to Employees,Çalışanlara Ata, +Assigning Structures...,Yapılar atanıyor..., +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 Ekleyin, -Attachment,Haciz, -Attachments,Eklentiler, -Attendance,katılım, +Attach Logo,Logo Ekle, +Attachment,Ek dosya, +Attachments,Ek dosyalar, +Attendance,Puantaj, 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, @@ -317,22 +317,22 @@ Auto Repeat,Otomatik Tekrarla, Auto repeat document updated,Otomatik tekrar dokümanı güncellendi, Automotive,Otomotiv, Available,Mevcut, -Available Leaves,Mevcut yaprakları, +Available Leaves,Mevcut İzinler, 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ın alma 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ınalma 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, @@ -345,89 +345,89 @@ Balance (Dr - Cr),Denge (Dr - Cr), Balance ({0}),Bakiye ({0}), Balance Qty,Denge Adet, Balance Sheet,Bilanço, -Balance Value,Denge Değeri, +Balance Value,Mevcut Maliyet, 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 Uzlaşma, +Bank Reconciliation,Banka Mutabakatı, Bank Reconciliation Statement,Banka Mutabakat Kaydı, -Bank Statement,Hesap durumu, +Bank Statement,Banka Ekstresi, 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, -Bank/Cash transactions against party or for internal transfer,partiye karşı veya dahili transfer için Banka / Para Çekme işlemleri, -Banking,Bankacılık, -Banking and Payments,Bankacılık ve Ödemeler, +Bank/Cash transactions against party or for internal transfer,Cariye karşı veya iç transfer için Banka / Kasa işlemleri, +Banking,Banka İşlemleri, +Banking and Payments,Banka İşlemleri 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,Temel, Base URL,Temel URL, -Based On,Göre, -Based On Payment Terms,Ödeme Koşullarına Göre, +Based On,Buna göre, +Based On Payment Terms,Ödeme Vadesine göre, Basic,Temel, -Batch,yığın, -Batch Entries,Toplu Girişler, -Batch ID is mandatory,Parti numarası zorunludur, +Batch,Parti (Batch), +Batch Entries,Parti Girişleri, +Batch ID is mandatory,Parti Numarası zorunludur, Batch Inventory,Parti Envanteri, Batch Name,Parti Adı, Batch No,Parti No, 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: ,Toplu:, +Batch: ,Parti (Batch): , 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,Malzeme Listesi, -Bill of Materials (BOM),Malzeme Listesi (BOM), +Bill of Materials,Ürün Ağacı / Reçete, +Bill of Materials (BOM),Ürün Ağacı (BOM), Billable Hours,Faturalandırılabilir Saatler, -Billed,Faturalanmış, -Billed Amount,Faturalı Tutar, +Billed,Faturalanan, +Billed Amount,Faturalanan Tutar, Billing,Faturalama, -Billing Address,Faturalama Adresi, +Billing Address,Fatura Adresi, Billing Address is same as Shipping Address,"Fatura Adresi, Teslimat Adresiyle aynı", Billing Amount,Fatura Tutarı, Billing Status,Fatura Durumu, -Billing currency must be equal to either default company's currency or party account currency,"Faturalandırma para birimi, varsayılan şirketin para birimi veya parti hesabı para birimine eşit olmalıdır", +Billing currency must be equal to either default company's currency or party account currency,"Faturalandırma para birimi, varsayılan şirketin para birimi veya Cari hesabı para birimine eşit olmalıdır", Bills raised by Suppliers.,Tedarikçiler tarafından artırılan faturalar, Bills raised to Customers.,Müşterilere artırılan faturalar, Biotechnology,Biyoteknoloji, Birthday Reminder,Doğum Günü Hatırlatıcısı, Black,Siyah, -Blanket Orders from Costumers.,Müşterilerden Battaniye Siparişleri., +Blanket Orders from Costumers.,Müşterilerden gelen Açık Siparişler, 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,BOM Araştır, -Budget Against,bütçe Karşı, +Branch,Şube, +Broadcasting,Yayın, +Brokerage,Komisyonculuk, +Browse BOM,BOMa Gözat, +Budget Against,Bütçe Karşılığı, 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 Müdürü, +Business Development Manager,İş Geliştirme Yöneticisi, Buy,Satın al, -Buying,Satın alma, -Buying Amount,Alım Miktarı, -Buying Price List,Alış Fiyatı Listesi, -Buying Rate,Alış oranı, -"Buying must be checked, if Applicable For is selected as {0}","Eğer Uygulanabilir {0} olarak seçilirse, alım kontrol edilmelidir.", +Buying,Satınalma, +Buying Amount,Alış Tutarı, +Buying Price List,Alış Fiyat Listesi, +Buying Rate,Alış Fiyatı, +"Buying must be checked, if Applicable For is selected as {0}","Eğer uygulanabilir {0} olarak seçilirse, alım kontrolü yapılmalıdır.", By {0},{0} tarafından, -Bypass credit check at Sales Order ,Satış Siparişinde kredi kontrolünü atla, +Bypass credit check at Sales Order ,Satış siparişinde kredi kontrolünü atla , C-Form records,C-Form kayıtları, C-form is not applicable for Invoice: {0},C-Formu bu fatura için uygulanamaz: {0}, CEO,CEO, @@ -435,62 +435,62 @@ CESS Amount,CESS Tutarı, CGST Amount,CGST Tutarı, CRM,CRM, CWIP Account,CWIP Hesabı, -Calculated Bank Statement balance,Hesaplanan Banka Hesap bakiyesi, +Calculated Bank Statement balance,Hesaplanan Banka Hesap Bakiyesi, Calls,Aramalar, Campaign,Kampanya, -Can be approved by {0},{0} tarafından onaylanmış, -"Can not filter based on Account, if grouped by Account","Hesap, olarak gruplandırıldı ise Hesaba dayalı filtreleme yapamaz", -"Can not filter based on Voucher No, if grouped by Voucher","Dekont, olarak gruplandırıldı ise Makbuz numarasına dayalı filtreleme yapamaz", +Can be approved by {0},{0} tarafından onaylandı, +"Can not filter based on Account, if grouped by Account","Hesap, olarak gruplandırıldı ise Hesaba tabanlı yönetim yönetimi", +"Can not filter based on Voucher No, if grouped by Voucher","Dekont, olarak gruplandırıldıysa, Makbuz numarasına dayalı yönetim yönetimi", "Can not mark Inpatient Record Discharged, there are Unbilled Invoices {0}","Yatan Kayıt Deşarjı işaretlenemiyor, Faturalandırılmamış Faturalar var {0}", -Can only make payment against unbilled {0},Sadece karşı ödeme yapabilirsiniz faturalanmamış {0}, -Can refer row only if the charge type is 'On Previous Row Amount' or 'Previous Row Total',Eğer ücret biçimi 'Önceki Ham Miktar' veya 'Önceki Ham Totk' ise referans verebilir, -"Can't change valuation method, as there are transactions against some items which does not have it's own valuation method",Kendi değerleme yöntemine sahip olmayan bazı ürünlere karşı işlemler olduğu için değerleme yöntemini değiştiremezsiniz, -Can't create standard criteria. Please rename the criteria,Standart ölçütler oluşturulamıyor. Lütfen ölçütleri yeniden adlandırın, +Can only make payment against unbilled {0},Sadece karşı ödeme yapamazsınız faturalanmamış {0}, +Can refer row only if the charge type is 'On Previous Row Amount' or 'Previous Row Total',Eğer ücret tipi 'Önceki Satır Tutarında' veya 'Önceki Satır Toplamı' ise referans verebilir, +"Can't change valuation method, as there are transactions against some items which does not have it's own valuation method",Kendi değerleme yöntemine sahip olmayan bazı ürünlere karşı işlemler olduğu için değerleme kullanımı değiştiremezsiniz, +Can't create standard criteria. Please rename the criteria,Standart ölçüler oluşturulamıyor. Lütfen ölçütleri yeniden tanımlayanın, Cancel,İptal, -Cancel Material Visit {0} before cancelling this Warranty Claim,Malzeme ziyaret {0} Bu Garanti Talep iptal etmeden önce iptal, +Cancel Material Visit {0} before cancelling this Warranty Claim,Malzeme ziyareti {0} Bu Garanti Talebi iptal edilmeden önce iptal, Cancel Material Visits {0} before cancelling this Maintenance Visit,Bu Bakım Ziyaretini iptal etmeden önce Malzeme Ziyareti {0} iptal edin, Cancel Subscription,Aboneliği iptal et, -Cancel the journal entry {0} first,Önce {0} günlük girişini iptal et, +Cancel the journal entry {0} first,Önce {0} yevmiye kaydını iptal et, 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 Submit, Employees left to mark attendance","Gönderilemiyor, çalışanlar katılmak için ayrılmış", +Cannot be a fixed asset item as Stock Ledger is created.,Stok Defteri oluşturulduğu sabit bir varlık kalemi olamaz., 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 transaction for Completed Work Order.,Tamamlanmış İş Emri için işlemi iptal edemez., 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şı, +Cannot change Attributes after stock transaction. Make a new Item and transfer stock to the new Item,Hisse senetlerini oluşturduktan sonra değiştiremezsiniz. Yeni Bir Öğe Yapın ve Stokları Yeni Öğe Taşı, Cannot change Fiscal Year Start Date and Fiscal Year End Date once the Fiscal Year is saved.,Mali Yıl Başlangıç Tarihi ve Mali Yılı kaydedildikten sonra Mali Yıl Sonu Tarihi değiştiremezsiniz., -Cannot change Service Stop Date for item in row {0},{0} numaralı satırdaki öğe için Hizmet Durdurma Tarihi değiştirilemez, -Cannot change Variant properties after stock transaction. You will have to make a new Item to do this.,Stok işleminden sonra Varyant özellikleri değiştirilemez. Bunu yapmak için yeni bir öğe yapmanız gerekecek., -"Cannot change company's default currency, because there are existing transactions. Transactions must be cancelled to change the default currency.","Mevcut işlemler olduğundan, şirketin varsayılan para birimini değiştiremezsiniz. İşlemler Varsayılan para birimini değiştirmek için iptal edilmelidir.", -Cannot change status as student {0} is linked with student application {1},öğrenci olarak durumunu değiştirmek olamaz {0} öğrenci uygulaması ile bağlantılı {1}, -Cannot convert Cost Center to ledger as it has child nodes,Çocuk nodları olduğundan Maliyet Merkezi ana deftere dönüştürülemez, -Cannot covert to Group because Account Type is selected.,Hesap Türü seçili olduğundan Grup gizli olamaz., -Cannot create Retention Bonus for left Employees,Sol Çalışanlar için Tutma Bonusu oluşturulamıyor, -Cannot create a Delivery Trip from Draft documents.,Taslak dokümanlardan Teslimat Gezisi oluşturulamaz., -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 change Service Stop Date for item in row {0},{0} satır satırdaki öğe için Hizmet Durdurma Tarihi değiştirilemez, +Cannot change Variant properties after stock transaction. You will have to make a new Item to do this.,Stok yapıldıktan sonra Varyant özellikleri değiştirilemez. Bunu yapmak için yeni bir öğe almanız gerekir., +"Cannot change company's default currency, because there are existing transactions. Transactions must be cancelled to change the default currency.","Mevcut işletimlerinden, genel genel para birimini değiştiremezsiniz. İşlemler Varsayılan para birimini değiştirmek için iptal edilmelidir.", +Cannot change status as student {0} is linked with student application {1},öğrenci olarak değiştirilemez {0} öğrenci uygulaması ile bağlantılı {1}, +Cannot convert Cost Center to ledger as it has child nodes,Çocuk düğümleri nedeniyle Maliyet Merkezi ana deftere dönüştürülemez, +Cannot covert to Group because Account Type is selected.,Hesap Türü görünümünden Grup gizli olamaz., +Cannot create Retention Bonus for left Employees,Sol çalışanlar için Tutma Bonusu oluşturamıyor, +Cannot create a Delivery Trip from Draft documents.,Taslak belgelerden Teslimat Gezisi oluşturulamaz., +Cannot deactivate or cancel BOM as it is linked with other BOMs,Devre dışı hizmet 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ıldığı için ilan edilemez., 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 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 deduct when category is for 'Valuation' or 'Vaulation and Total',Kategori 'Değerleme' veya 'Değerlendirme ve Toplam' için olduğunda düşülemez, +"Cannot delete Serial No {0}, as it is used in stock transactions","Silinemiyor Seri No {0}, hisse senedi işlemleri kullanılıyor gibi", +Cannot enroll more than {0} students for this student group.,Bu öğrenci grubu için {0} gelen göre daha fazla kayıt olamaz., Cannot find active Leave Period,Aktif İzin Dönemi bulunamıyor, Cannot produce more Item {0} than Sales Order quantity {1},Satış Sipariş Miktarı {1} den fazla Ürün {0} üretilemez, -Cannot promote Employee with status Left,Çalışan durumu solda tanıtılamaz, -Cannot refer row number greater than or equal to current row number for this Charge type,Kolon numarası bu Ücret tipi için kolon numarasından büyük veya eşit olamaz, -Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for first row,İlk satır için ücret tipi 'Önceki satır tutarında' veya 'Önceki satır toplamında' olarak seçilemez, -Cannot set as Lost as Sales Order is made.,Satış Emri yapıldığında Kayıp olarak ayarlanamaz., -Cannot set authorization on basis of Discount for {0},{0} için indirim temelinde yetki ayarlanamaz, +Cannot promote Employee with status Left,Çalışan durumu sata tanıtılamaz, +Cannot refer row number greater than or equal to current row number for this Charge type,Kolon sırası bu Ücret tipi için kolon numarasından büyük veya eşit olamaz, +Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for first row,İlk satır için ücret tipi 'Önceki satırları kullanır' veya 'Önceki satır toplamında' olarak seçilemez, +Cannot set as Lost as Sales Order is made.,Satış Siparişi verildiği için Kayıp olarak ayarlanamaz., +Cannot set authorization on basis of Discount for {0},{0} için İndirim bazında yetkilendirme ayarlanamıyor, Cannot set multiple Item Defaults for a company.,Bir şirket için birden fazla Öğe Varsayılanı belirlenemiyor., Cannot set quantity less than delivered quantity,Teslim edilen miktardan daha az miktar belirlenemiyor, Cannot set quantity less than received quantity,Alınan miktardan daha az miktar ayarlanamaz, Cannot set the field {0} for copying in variants,Değişkenlere kopyalamak için {0} alanı ayarlanamıyor, Cannot transfer Employee with status Left,Çalışan durumu Sola aktarılamıyor, -Cannot {0} {1} {2} without any negative outstanding invoice,değil {0} {1} {2} olmadan herhangi bir olumsuz ödenmemiş fatura Can, +Cannot {0} {1} {2} without any negative outstanding invoice,{0} {1} {2} olmadan herhangi bir olumsuz ödenmemiş fatura Can, Capital Equipments,Sermaye Ekipmanları, -Capital Stock,Öz sermaye, -Capital Work in Progress,Devam Eden Sermaye Çalışması, +Capital Stock,Öz Sermaye, +Capital Work in Progress,Sermaye Yarı Mamul, Cart,Araba, -Cart is Empty,Sepet Boş, +Cart is Empty,Sepet boş, Case No(s) already in use. Try from Case No {0},Konu Numarası/numaraları zaten kullanımda. Konu No {0} olarak deneyin., Cash,Nakit, Cash Flow Statement,Nakit Akım Tablosu, @@ -498,75 +498,75 @@ Cash Flow from Financing,Finansman Nakit Akışı, Cash Flow from Investing,Yatırım Nakit Akışı, Cash Flow from Operations,Faaliyetlerden Nakit Akışı, Cash In Hand,Eldeki Nakit, -Cash or Bank Account is mandatory for making payment entry,Kasa veya Banka Hesabı ödeme girişi yapmak için zorunludur, +Cash or Bank Account is mandatory for making payment entry,Kasa veya Banka Hesabı ödeme kaydı yapmak için zorunludur, Cashier Closing,Kasiyer Kapanışı, Casual Leave,Mazeret İzni, Category,Kategori, Category Name,Kategori Adı, Caution,Dikkat, -Central Tax,Merkez vergisi, -Certification,belgeleme, +Central Tax,Merkezi Vergi, +Certification,Belgeleme, Cess,Cess, -Change Amount,Değişim Miktarı, +Change Amount,Değişim Tutarı, 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,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", +Chargeble,Masrafa tabi, +Charges are updated in Purchase Receipt against each item,Masraflar her kalem için Satınalma Fişinde güncellenir, +"Charges will be distributed proportionately based on item qty or amount, as per your selection","Masraflar, seçiminize göre ürün miktarına veya tutarına göre orantılı olarak dağıtılacaktır.", Chart of Cost Centers,Maliyet Merkezlerinin Grafikleri, -Check all,Tümünü kontrol, -Checkout,Çıkış yapmak, +Check all,Tümünü kontrol et, +Checkout,Çıkış yap, 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., +Cheques and Deposits incorrectly cleared,Çekler ve Mevduat yanlış temizlendi, +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 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,İddia Edilen Tutar, +Claimed Amount,Talep 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,Müşteri:, -Client ID,Müşteri Kimliği, -Client Secret,Müşteri Gizliliği, +Client,Client, +Client ID,Client ID, +Client Secret,Client Secret, 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,POS'u kapat, +Close the POS,POSu kapat, Closed,Kapalı, -Closed order cannot be cancelled. Unclose to cancel.,Kapalı sipariş iptal edilemez. iptal etmek için açıklamak., -Closing (Cr),Kapanış (Cr), -Closing (Dr),Kapanış (Dr), +Closed order cannot be cancelled. Unclose to cancel.,Kapalı sipariş iptal edilemez. İptal etmek için açın., +Closing (Cr),Kapanış (Alacak), +Closing (Dr),Kapanış (Borç), 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 Account {0} must be of type Liability / Equity,Kapanış Hesabı {0}, Borç / Özkaynak türünde olmalıdır, Closing Balance,Kapanış bakiyesi, Code,Kod, -Collapse All,Tüm daraltmak, +Collapse All,Tümünü Daralt, Color,Renk, Colour,Renk, -Combined invoice portion must equal 100%,Kombine fatura payı% 100'e eşit olmalıdır, +Combined invoice portion must equal 100%,Birleşik fatura kısmı %100'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,Forum, +Community Forum,Topluluk Forumu, Company (not Customer or Supplier) master.,Şirket (değil Müşteri veya alanı) usta., -Company Abbreviation,Şirket kısaltma, +Company Abbreviation,Şirket Kısaltması, 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, @@ -576,176 +576,176 @@ Company name not same,Şirket adı aynı değil, 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ın, +Configure {0},{0} Yapılandır, 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'u ERPNext ile bağlayın, +Connect Shopify with ERPNext,ERPNext ile Shopify'ı bağlayın, +Connect to Quickbooks,Quickbooks'a bağlan, Connected to QuickBooks,QuickBooks’a bağlandı, -Connecting to QuickBooks,QuickBooks'a Bağlanma, -Consultation,konsültasyon, -Consultations,istişareler, +Connecting to QuickBooks,QuickBooks'a Bağlanma, +Consultation,İstişare, +Consultations,İstiş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 Adet, -Consumer Products,Tüketici ürünleri, -Contact,İrtibat, +Consumed Qty,Tüketilen Miktar, +Consumer Products,Tüketici Ürünleri, +Contact,İlgili Kişiler, Contact Details,İletişim Bilgileri, -Contact Number,İletişim numarası, -Contact Us,Bizimle iletişime geçin, +Contact Number,İletişim Numarası, +Contact Us,Bize ulaşın, 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 %,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ürmek, +Convert to Group,Gruba Dönüştür, Convert to Non-Group,Olmayan gruba dönüştürme, Cosmetics,Bakım ürünleri, Cost Center,Maliyet Merkezi, Cost Center Number,Maliyet Merkezi Numarası, Cost Center and Budgeting,Maliyet Merkezi ve Bütçeleme, Cost Center is required in row {0} in Taxes table for type {1},Satır {0} da Vergiler Tablosunda tip {1} için Maliyet Merkezi gereklidir, -Cost Center with existing transactions can not be converted to group,Maliyet Merkezi mevcut işlemlere gruba dönüştürülemez, -Cost Center with existing transactions can not be converted to ledger,Maliyet Merkezi mevcut işlemlere ana deftere dönüştürülemez, +Cost Center with existing transactions can not be converted to group,Mevcut işlemleri olan Masraf Merkezi gruba çevrilemez, +Cost Center with existing transactions can not be converted to ledger,Mevcut işlemleri olan Masraf Merkezi gruba çevrilemez, Cost Centers,Maliyet Merkezleri, -Cost Updated,Maliyet Güncelleme, +Cost Updated,Maliyet Güncellendi, Cost as on,olarak Maliyet, -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ı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", +Cost of Delivered Items,Teslim edilen Ürün Maliyeti, +Cost of Goods Sold,Satılan Malın Maliyeti, +Cost of Issued Items,Verilen Ürün Maliyeti, +Cost of New Purchase,Yeni Alış Maliyeti, +Cost of Purchased Items,Satılan Ürün Maliyeti, +Cost of Scrapped Asset,Hurdaya Çıkarılan Varlık Maliyeti, +Cost of Sold Asset,Satılan Varlık 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' olasılığın işaretini kaldırmayı ve tekrar göndermeyi", 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., -Could not solve weighted score function. Make sure the formula is valid.,Ağırlıklı skor fonksiyonunu çözemedim. Formülün geçerli olduğundan emin olun., -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.", +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 mevcut olduğundan emin olun., +Could not solve weighted score function. Make sure the formula is valid.,Ağırlıklı skorları çözemedim. Formülün mevcut olduğundan emin olun., +Could not submit some Salary Slips,Bazı Maaş Balıkları gönderilemedi, +"Could not update stock, invoice contains drop shipping item.","Stok güncellemesi yapılamaz, faturanın damla nakliye öğesini içerir.", 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,Cr, +Course Schedule,Kurs Programı, +Course: ,Ders: , +Cr,Alacak, Create,Oluştur, Create BOM,Malzeme Listesi Oluştur, -Create Delivery Trip,Teslimat Gezisi 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,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 Delivery Trip,Teslimat Yolculuğu 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 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 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 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 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,Çalışmanızı planlamanıza ve zamanında teslim etmenize yardımcı olacak Satış Siparişlerini Oluştur, +Create Sample Retention Stock Entry,Numune Saklama Stok Hareketi Oluştur, +Create Student,Öğrenci Oluştur, Create Student Batch,Öğrenci Grubu Oluştur, -Create Student Groups,Öğrenci Grupları Oluşturma, -Create Supplier Quotation,Tedarikçi Teklifi Yarat, +Create Student Groups,Öğrenci Grupları Oluştur, +Create Supplier Quotation,Tedarikçi Teklifi Oluştur, 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 tırnak oluşturun, +"Create and manage daily, weekly and monthly email digests.","Günlük, haftalık ve aylık e-posta özetlerini oluşturun.", +Create customer quotes,Müşteri Teklifi Oluştur, 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 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ı, +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ı, Credit Days cannot be a negative number,Kredi Günleri negatif sayı olamaz, -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,Kredi Limiti, +Credit Note,Alacak Dekontu, +Credit Note Amount,Alacak Dekontu Tutarı, +Credit Note Issued,Alacak Dekontu Verildi, +Credit Note {0} has been created automatically,Kredi Notu {0} otomatik olarak kurulmuştur, 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, +Criteria weights must add up to 100%,Ölçüt ağırlıkları %100'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, +Currency can not be changed after making entries using some other currency,Para başka bir para birimini kullanarak girdileri kayboldu sonra değiştirilemez, Currency exchange rate master.,Ana Döviz Kuru., -Currency for {0} must be {1},Döviz {0} olmalıdır için {1}, +Currency for {0} must be {1},Döviz {0} için {1} olmalıdır, Currency is required for Price List {0},Döviz Fiyat Listesi için gereklidir {0}, -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 of the Closing Account must be {0},Kapanış Hesap Dövizi olmalıdır {0}, +Currency of the price list {0} must be {1} or {2},{0} fiyat listesi 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,şimdiki, +Current,Geçerli, Current Assets,Mevcut Varlıklar, Current BOM and New BOM can not be same,Cari BOM ve Yeni BOM aynı olamaz, Current Job Openings,Güncel İş Olanakları, -Current Liabilities,Kısa Vadeli Borçlar, -Current Qty,Güncel Adet, +Current Liabilities,Cari Borçlar/Pasif, +Current Qty,Güncel Mik, Current invoice {0} is missing,Şu fatura {0} eksik, Custom HTML,Özel HTML, -Custom?,Özel?, +Custom?,Özel mi?, Customer,Müşteri, -Customer Addresses And Contacts,Müşteri Adresleri Ve İrtibatları, +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 Database.,Müşteri Veritabanı., +Customer Group,Müşteri Grubu, Customer LPO,Müşteri LPO'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 Bağlılık Programına kayıtlı değil, -Customer required for 'Customerwise Discount','Müşteri indirimi' için gereken müşteri, +Customer is required,Müşteri dahil, +Customer isn't enrolled in any Loyalty Program,Müşteri kaydı bir Sadakat Programına kayıtlı değil, +Customer required for 'Customerwise Discount','Müşteri indirimi' için olması 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., -Customers in Queue,Kuyruk Müşteriler, +Customer {0} is created.,Müşteri {0} kaydedildi., +Customers in Queue,Kuyruk Müşterileri, Customize Homepage Sections,Ana Sayfa Bölümlerini Özelleştir, Customizing Forms,Özelleştirme Formları, Daily Project Summary for {0},{0} Günlük Proje Özeti, @@ -754,179 +754,179 @@ Daily Work Summary,Günlük Çalışma Özeti, 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üşterilerin Veritabanı., +Database of potential customers.,Potansiyel depolama birimleri., 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 Of Retirement must be greater than Date of Joining,Emeklilik Tarihi ulaşım hatları büyük olmalıdır, Date is repeated,Tarih tekrarlanır, -Date of Birth,Doğum tarihi, -Date of Birth cannot be greater than today.,Doğum Tarihi bugünkünden daha büyük olamaz., -Date of Commencement should be greater than Date of Incorporation,Başlangıç tarihi kuruluş tarihinden daha büyük olmalıdır., +Date of Birth,Doğum Tarihi, +Date of Birth cannot be greater than today.,Tarihi doğum gerçeklerinden daha büyük olamaz., +Date of Commencement should be greater than Date of Incorporation,Başlangıç tarihi kuruluşunun daha büyük olması gerekir., 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,İşlem tarihi, +Date of Transaction,işlem tarihi, Datetime,Tarihzaman, Day,Gün, -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,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ç Dekontu Tutarı, +Debit Note Issued,Borç Dekontu Düzenlendi, +Debit To is required,Borçlanma yeri gerekli, 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, -Default Activity Cost exists for Activity Type - {0},Standart Etkinliği Maliyet Etkinlik Türü için var - {0}, +Deduction,Kesinti, +Default Activity Cost exists for Activity Type - {0},Standart Etkinliği Maliyet Faaliyet 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,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 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) yapıldığı için Öğ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 gerekir., +Default Unit of Measure for Variant '{0}' must be same as in Template '{1}',Varyant için Ölçü Varsayılan Birim '{0}' Şablon aynı olmalıdır '{1}', 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., +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ınalma alımları için varsayılan vergi şablonları ayrılır., Defaults,Standart Değerler, Defense,Savunma, -Define Project type.,Proje türünü tanımlayın., +Define Project type.,Proje çıkarmayı 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,Del, Delay in payment (Days),Ödeme Gecikme (Gün), Delete all the Transactions for this Company,Bu şirket için bütün İşlemleri sil, Deletion is not permitted for country {0},{0} ülke için silme işlemine izin verilmiyor, -Delivered,Teslim Edildi, -Delivered Amount,Teslim Tutar, +Delivered,Teslim edildi, +Delivered Amount,Teslimat Tutarı, Delivered Qty,Teslim Edilen Miktar, -Delivered: {0},Teslim: {0}, -Delivery,İrsaliye, -Delivery Date,İrsaliye Tarihi, -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, -Delivery Notes {0} updated,Teslimat Notları {0} güncellendi, -Delivery Status,Teslim Durumu, -Delivery Trip,Teslimat Gezisi, +Delivered: {0},Teslim edilen: {0}, +Delivery,Teslimat, +Delivery Date,Teslimat Tarihi, +Delivery Note,Satış İrsaliyesi, +Delivery Note {0} is not submitted,Satış İrsaliyesi {0} teslim edilmedi, +Delivery Note {0} must not be submitted,Satış İrsaliyesi {0} teslim edilmemelidir, +Delivery Notes {0} must be cancelled before cancelling this Sales Order,Satış Siparişi iptal edilmeden önce İrsaliyeler {0} iptal edilmelidir, +Delivery Notes {0} updated,{0} Satış İrsaliyesi güncellendi, +Delivery Status,Teslimat Durumu, +Delivery Trip,Teslimat Yolculuğu, Delivery warehouse required for stock item {0},Teslim depo stok kalemi için gerekli {0}, Department,Departman, -Department Stores,Departman mağazaları, +Department Stores,Departman Mağazaları, Depreciation,Amortisman, Depreciation Amount,Amortisman Tutarı, -Depreciation Amount during the period,döneminde Amortisman Tutarı, +Depreciation Amount during the period,Dönem içindeki 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 kayıt, +Depreciation Eliminated due to disposal of assets,Amortisman nedeniyle elden çıkarma elendi, +Depreciation Entry,Amortisman Kaydı, 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ın Alma 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 Tarihten ö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ı, 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,Diff Adet, +Did not find any item called {0},{0} bilgisayarı bulunamadı, +Diff Qty,Fark Miktarı, 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ı, +"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 farklı hesabının aktif ya da pasif bir hesap tipi olması gerekmektedir, +Difference Amount,Farklı ayrılıklar, Difference Amount must be zero,Fark Tutar sıfır olmalıdır, -Different UOM for items will lead to incorrect (Total) Net Weight value. Make sure that Net Weight of each item is in the same UOM.,Ürünler için farklı Ölçü Birimi yanlış (Toplam) net ağırlıklı değere yol açacaktır. Net ağırlıklı değerin aynı olduğundan emin olun., +Different UOM for items will lead to incorrect (Total) Net Weight value. Make sure that Net Weight of each item is in the same UOM.,Ürünler için farklı Ölçü Birimi yanlış (Toplam) net değer değerine yol açacaktır. Net etki değerinin aynı olduğundan emin olun., Direct Expenses,Doğrudan Giderler, -Direct Income,Doğrudan gelir, +Direct Income,doğrudan gelir, Disable,Devre Dışı Bırak, -Disabled template must not be default template,Engelli şablon varsayılan şablon olmamalıdır, +Disabled template must not be default template,Engelli kalıpları varsayılan kalıpları, Disburse Loan,Kredi Kredisi, -Disbursed,Önceki dönemlerde toplanan, +Disbursed,Önceki dönemlerde toplananlar, Disc,Disk, Discharge,Deşarj, Discount,İndirim, -Discount Percentage can be applied either against a Price List or for all Price List.,İndirim Yüzdesi bir Fiyat listesine veya bütün fiyat listelerine karşı uygulanabilir., -Discount must be less than 100,İndirim 100'den az olmalıdır, +Discount Percentage can be applied either against a Price List or for all Price List.,İndirim Yüzdesi bir Fiyat veya bütün fiyat listelerine karşı uygulanabilir., +Discount must be less than 100,İndirim 100'den az olmalı, Diseases & Fertilizers,Hastalıklar ve Gübreler, Dispatch,Sevk, Dispatch Notification,Sevk Bildirimi, -Dispatch State,Sevk devlet, +Dispatch State,Sevk Durumu, Distance,Mesafe, -Distribution,dağıtım, +Distribution,Dağıtım, Distributor,Dağıtımcı, -Dividends Paid,Temettü Ücretli, -Do you really want to restore this scrapped asset?,Eğer gerçekten bu hurdaya varlığın geri yüklemek istiyor musunuz?, -Do you really want to scrap this asset?,Bu varlığı gerçekten hurda etmek istiyor musunuz?, -Do you want to notify all the customers by email?,Tüm müşterilere e-posta ile haber vermek istiyor musunuz?, -Doc Date,Doküman Tarihi, -Doc Name,Doküman Adı, -Doc Type,Doküman Türü, -Docs Search,Dokümanlar Ara, -Document Name,Belge Adı, +Dividends Paid,Ödenen Temettüler, +Do you really want to restore this scrapped asset?,Eğer gerçekten bu hurdaya ait varlığın geri yüklenmesini istiyor musunuz?, +Do you really want to scrap this asset?,Bu varlığı gerçekten hurdalamak istiyor musunuz?, +Do you want to notify all the customers by email?,Tüm bileşenleri e-posta ile haber vermek istiyor musunuz?, +Doc Date,Belge Tarihi, +Doc Name,Belge Adı, +Doc Type,Belge Türü, +Docs Search,Belge Ara, +Document Name,Belge adı, Document Status,Belge Durumu, Document Type,Belge Türü, -Domain,Etki Alanı, -Domains,Çalışma Alanları, -Done,tamam, -Donor,verici, +Domain,Domain, +Domains,Domains, +Done,Bitti, +Donor,Donör, Donor Type information.,Donör Türü bilgileri., Donor information.,Bağışçı bilgileri., Download JSON,JSON indir, -Draft,taslak, -Drop Ship,Bırak Gemi, +Draft,Taslak, +Drop Ship,Drop Ship, 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 is mandatory,Due Date zorunludur, +Due Date cannot be before Posting / Supplier Invoice Date,Son Ödeme Tarihi Gönderim / Tedarikçi Fatura Tarihi'nden önce olamaz, +Due Date is mandatory,Bitiş Tarihi, 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 customer group found in the cutomer group table,müşteri grubu tablosunda bulunan yinelenen müşteri grubu, 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 roll number for student {0},{0} öğrenci için yinelenen rulo numarası, +Duplicate row {0} with same {1},Satır {0} ı {1} ile aynı biçimlerde kopyala, Duplicate {0} found in the table,Tabloda {0} yinelenen kopya, -Duration in Days,Günlerde Süre, +Duration in Days,Gün olarak 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 Publishing Details,Yayınlama Ayrıntılarını Düzenleyen, +"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 araştırma.", 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, -Either target qty or target amount is mandatory.,Hedef miktarı veya hedef tutarı zorunludur., +Either target qty or target amount is mandatory,Hedef miktar veya hedef korumalar, +Either target qty or target amount is mandatory.,Hedef miktar veya hedef korumalar., Electrical,Elektrik, Electronic Equipments,Elektronik Ekipmanlar, Electronics,Elektronik, Eligible ITC,Uygun ITC, Email Account,E-posta Hesabı, -Email Address,E, +Email Address,E-posta Address, "Email Address must be unique, already exists for {0}","{0} E-posta adresi zaten var, benzersiz olmalıdır.", -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 Digest: ,Özet e-posta:, +Email Reminders will be sent to all parties with email contacts,E-posta Hatırlatıcıları e-posta ile tüm gönderia gönderilecek, +Email Sent,E-posta Gönderildi, 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,Ç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,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 ID, +Employee Lifecycle,Personel Yaşam Döngüsü, +Employee Name,Personel Adı, Employee Promotion cannot be submitted before Promotion Date ,Çalışan Promosyonu Promosyon Tarihinden önce gönderilemez, -Employee Referral,İşçi başvurusu, +Employee Referral,Personel 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""", @@ -938,24 +938,24 @@ Employee {0} is on Leave on {1},"{0} çalışanı, {1} tarihinde devam ediyor", Employee {0} of grade {1} have no default leave policy,{1} notunun {0} çalışanında varsayılan izin yok politikası yoktur, Employee {0} on Half day on {1},"Yarım günde Çalışan {0}, {1}", Enable,Etkinleştir, -Enable / disable currencies.,/ Para birimlerini etkinleştir/devre dışı bırak., +Enable / disable currencies.,/ Para birimlerini etkinleştirir/devre dışı bırakır., 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, 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 Date cannot be before Start Date.,"Bitiş Tarihi, Başlangıç Tarihi'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 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'nden önce olamaz.", Energy,Enerji, -Engineer,Mühendis, -Enough Parts to Build,Yeter Parçaları Build, -Enroll,kaydetmek, -Enrolling student,kaydolunan öğrenci, -Enrolling students,Öğrencileri kaydettirme, -Enter depreciation details,Amortisman bilgilerini girin, +Engineer,mühendis, +Enough Parts to Build,Yeter Parçaları İnşa, +Enroll,ayrılmak, +Enrolling student,kayıtlıunan öğrenci, +Enrolling students,öğrencileri kaydetme, +Enter depreciation details,Amortisman bilgileri girin, Enter the Bank Guarantee Number before submittting.,Göndermeden önce Banka Garanti Numarasını girin., Enter the name of the Beneficiary before submittting.,Gönderilmeden önce Faydalanıcının adını girin., Enter the name of the bank or lending institution before submittting.,Göndermeden önce banka veya kredi kurumunun adını girin., @@ -963,57 +963,57 @@ Enter value betweeen {0} and {1},{0} ve {1} arasındaki bahis değerini girin, Entertainment & Leisure,Eğlence ve Boş Zaman, Entertainment Expenses,Eğlence giderleri, Equity,Özkaynak, -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?, -Estimated Cost,Tahmini maliyeti, +Error Log,Hata Günlüğü, +Error evaluating the criteria formula,Kriter formüllerini değerlendirirken hata oluştu, +Error in formula or condition: {0},Formül ya da işletim hatası: {0}, +Error: Not a valid id?,Hata: geçerli bir mahkeme?, +Estimated Cost,Tahmini Maliyet, Evaluation,Değerlendirme, -"Even if there are multiple Pricing Rules with highest priority, then following internal priorities are applied:","Eğer yüksek öncelikli birden çok Fiyatlandırma Kuralı varsa, şu iç öncelikler geçerli olacaktır.", -Event,Faaliyet, +"Even if there are multiple Pricing Rules with highest priority, then following internal priorities are applied:","Eğer yüksek öncelikli birden çok Fiyatlandırma Kuralı varsa, şu iç önermeler geçerli olacaktır.", +Event,Etkinlik, Event Location,Etkinlik Yeri, Event Name,Etkinlik Adı, 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, -Execution,Yerine Getirme, -Executive Search,Yürütücü Arama, -Expand All,Hepsini genişlet, +Execution,Yerine Geliştirme, +Executive Search,Arama Yürütücü, +Expand All,Tümünü Genişlet, Expected Delivery Date,Beklenen Teslim Tarihi, 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şlangıçTarihi, -Expense,gider, +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,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 Claim for Vehicle Log {0},Araç girişi için Gider Talebi {0}, +Expense Claim {0} already exists for the Vehicle Log,Gider Talebi {0} zaten Araç girişi için var, Expense Claims,Gider İddiaları, -Expense account is mandatory for item {0},Ürün {0} için gider hesabı zorunludur, -Expenses,giderler, +Expense account is mandatory for item {0},Ürün {0} için gider hesabının yükümlüleri, +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 dolan Toplu İşler, +Expired Batches,Süresi biten Toplu İşler, Expires On,Tarihinde sona eriyor, -Expiring On,Süresi doldu, -Expiry (In Days),(Gün) Son Kullanma, +Expiring On,süresi doldu, +Expiry (In Days),(Gün) Son Kullanım, Explore,Keşfet!, Export E-Invoices,E-Faturaları Dışa Aktar, -Extra Large,Ekstra büyük, -Extra Small,Extra Small, +Extra Large,ekstra büyük, +Extra Small,Çok küçük, Fail,Başarısız, Failed,Başarısız, Failed to create website,Web sitesi oluşturulamadı, Failed to install presets,Önayarlar yüklenemedi, -Failed to login,Giriş yapılamadı, -Failed to setup company,Kurulum şirketi başarısız oldu, -Failed to setup defaults,Varsayılanlar ayarlanamadı, +Failed to login,giriş yapılamadı, +Failed to setup company,kurulum şirketi başarısız oldu, +Failed to setup defaults,varsayılanlar ayarlanamadı, Failed to setup post company fixtures,Şirket armatürleri ayarlanamadı, -Fax,Faks, -Fee,ücret, +Fax,Fax, +Fee,Ücret, Fee Created,Ücretlendirildi, Fee Creation Failed,Ücret Oluşturma Başarısız Oldu, Fee Creation Pending,Ücret Oluşturma Bekliyor, @@ -1026,95 +1026,95 @@ Fetch Subscription Updates,Abonelik Güncellemeleri Al, Fetch exploded BOM (including sub-assemblies),(Alt-montajlar dahil) patlamış BOM'ları getir, Fetching records......,Kayıtlar alınıyor ......, Field Name,Alan Adı, -Fieldname,fieldname, +Fieldname,Alanadı, Fields,Alanlar, -Fill the form and save it,Formu doldurun ve kaydedin, +Fill the form and save it,Form doldurucu ve denetleyicileri, Filter Employees By (Optional),Çalışanları ... ile Filtrele (Opsiyonel), -"Filter Fields Row #{0}: Fieldname {1} must be of type ""Link"" or ""Table MultiSelect""",Filtre Alanları Satırı # {0}: {1} alan adı "Link" veya "Table MultiSelect" tipinde olmalıdır, +"Filter Fields Row #{0}: Fieldname {1} must be of type ""Link"" or ""Table MultiSelect""",Filtre Alanları Satırı # {0}: {1} alan adı "Link" veya "Table MultiSelect" tipinde olmalı, 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, +Finance Book,Mali Defter, +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 Good,Mamul Ürün, +Finished Good Item Code,Mamul Ü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 Item {0} must be entered for Manufacture type entry,Öğe sonlandırıldı {0} imalat tipi giriş için girilmelidir, Finished product quantity {0} and For Quantity {1} cannot be different,Bitmiş ürün miktarı {0} ve Miktar {1} için farklı olamaz, -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", +First Name,Adı, +"Fiscal Regime is mandatory, kindly set the fiscal regime in the company {0}","Mali rejimler, lütfen {0} şirketteki 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 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} 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 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", +Fixed Asset,Sabit Kıymet, +Fixed Asset Item must be a non-stock item.,Sabit Kıymet Öğesi olmayan bir stok defteri olmalıdır., +Fixed Assets,Sabit Kıymetler, +Following Material Requests have been raised automatically based on Item's re-order level,Malzeme İstekleri bir sonraki öğenin yeniden müşteri hizmetini göre otomatik olarak geldikleri, +Following accounts might be selected in GST Settings:,GST Ayarları'nda aşağıdaki hesaplar kullanılabilir:, +Following course schedules were created,Aşağıdaki ders programlarının kaydedilmesi, +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 öğeden {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} içeriği, {1} öğesi olarak işaretlenmemiş. Öğeleri ana öğeden {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,Çalışanlara, -For Quantity (Manufactured Qty) is mandatory,Miktar (Adet Üretilen) zorunludur, +For,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.","'Ürün Paketi' malzemeleri, Depo, Seri No ve Toplu No 'Ambalaj Listesi' tablodan kabul edilebilir. Depo ve Toplu Hayır herhangi bir 'Ürün Paketi' öğe için tüm ambalaj sunumu için aynı ise, bu değerler ana Öğe tablosu girilebilir, değerler tablosu 'Listesi Ambalaj' çoğaltılacaktır.", +For Employee,çalışanlara, +For Quantity (Manufactured Qty) is mandatory,Miktar (Adet Üretilen) cezaları, 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 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", -"For {0}, only debit accounts can be linked against another credit entry","{0}, sadece banka hesapları başka bir kredi girişine karşı bağlantılı olabilir için", +"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 stokunu girebilirsiniz.", +"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} dahil etmek için, satır {3} de dahil edilmelidir", +For row {0}: Enter Planned Qty,{0} bilgi için: Planlanan Miktarı Girin, +"For {0}, only credit accounts can be linked against another debit entry","{0}, yalnızca kredi hesapları başka bir ödeme girişine karşı bağlantılı olabilir", +"For {0}, only debit accounts can be linked against another credit entry","{0}, yalnızca banka hesapları başka bir kredi girişine karşı bağlantılı olabilir", Forum Activity,Forum Etkinliği, -Free item code is not selected,Ücretsiz ürün kodu seçilmedi, +Free item code is not selected,Ücretsiz ürün kodu tahminidi, Freight and Forwarding Charges,Navlun ve Sevkiyat Ücretleri, -Frequency,frekans, +Frequency,Frekans, Friday,Cuma, -From,Itibaren, -From Address 1,Adres 1'den, -From Address 2,Adres 2'den, +From,itibaren, +From Address 1,Adres 1'den, +From Address 2,Adres 2'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, -From Date must be before To Date,Tarihten itibaren tarihe kadardan önce olmalıdır, -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,DateTime Gönderen, -From Delivery Note,İrsaliyeden, -From Fiscal Year,Mali Yıldan, -From GSTIN,GSTIN'den, -From Party Name,Parti isminden, -From Pin Code,Pin Kodundan, -From Place,Yerden, +From Date cannot be greater than To Date,Tarihten bugüne kadardan ileride olamaz, +From Date must be before To Date,Tarihten itibaren bugüne kadardan önce olmalıdır, +From Date should be within the Fiscal Year. Assuming From Date = {0},Tarihten Mali'den 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} personelden çalışanın masrafından sonra tarih olamaz {1}, +From Date {0} cannot be before employee's joining Date {1},{0} personelinin çalışanlardan {1} yayınlanmasından ö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ş. Cari Adı, +From Pin Code,Baş. Pin Kodu, +From Place,Baş. Yeri, From Range has to be less than To Range,Menzil az olmak zorundadır Kimden daha Range için, -From State,Devletten, -From Time,Zamandan, +From State,Başlangıç Durumu, +From Time,Başlama Tarihi, 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ı", -From and To dates required,Tarih aralığı gerekli, -From date can not be less than employee's joining date,"Başlangıç tarihinden, çalışanın katılma tarihinden daha az olamaz", -From value must be less than to value in row {0},"Değerden, {0} satırındaki değerden az olmalıdır", +"From a supplier under composition scheme, Exempt and Nil rated","Kompozisyon düzeni sunucusu bir tedarikçiden, Muaf ve Nil Puanı", +From and To dates required,tarih aralığı gerekli, +From date can not be less than employee's joining date,"Başlangıç elde etmek, çalışanın birleştirme yöntemleri daha az olamaz", +From value must be less than to value in row {0},"Değerden, {0} bilgisindeki değerden az olmalıdır", From {0} | {1} {2},Gönderen {0} | {1} {2}, Fuel Price,Yakıt Fiyatı, Fuel Qty,Yakıt Adet, Fulfillment,yerine getirme, Full,Tam, Full Name,Tam Adı, -Full-time,Tam zamanlı, -Fully Depreciated,Değer kaybı tamamlanmış, +Full-time,tam mesai, +Fully Depreciated,Değer kaybı, Furnitures and Fixtures,Döşeme ve demirbaşlar, "Further accounts can be made under Groups, but entries can be made against non-Groups","Ek hesaplar Gruplar altında yapılabilir, ancak girişler olmayan Gruplar karşı yapılabilir", Further cost centers can be made under Groups but entries can be made against non-Groups,"Daha fazla masraf Gruplar altında yapılabilir, ancak girişleri olmayan Gruplar karşı yapılabilir", @@ -1124,119 +1124,119 @@ GSTIN,GSTIN, GSTR3B-Form,GSTR3B-Formu, Gain/Loss on Asset Disposal,Varlık Bertaraf Kâr / Zarar, Gantt Chart,Gantt şeması, -Gantt chart of all tasks.,Bütün görevlerin Gantt Şeması., +Gantt chart of all tasks.,Bütün görevlerinin Gantt Şeması., Gender,Cinsiyet, General,Genel, General Ledger,Genel Muhasebe, Generate Material Requests (MRP) and Work Orders.,Malzeme Talepleri (MRP) ve İş Emirleri Oluşturun., Generate Secret,Gizli Oluştur, -Get Details From Declaration,Deklarasyondan Detaylar Alın, +Get Details From Declaration,Açıklamadan Detaylar Alın, Get Employees,Çalışanları Al, Get Invocies,Davetiye Al, Get Invoices,Faturaları Al, Get Invoices based on Filters,Filtrelere Dayalı Faturaları Al, -Get Items from BOM,BOM dan Ürünleri alın, -Get Items from Healthcare Services,Sağlık Hizmetlerinden Ürün Alın, -Get Items from Prescriptions,Reçeteden Öğeleri Al, -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üncellemeler Alın, -Get customers from,Müşterileri şu adresten alın:, -Get from Patient Encounter,Hasta Envanterinden Alın, -Getting Started,Başlamak, +Get Items from BOM,BOMdan Ürünleri Getir, +Get Items from Healthcare Services,Sağlık Hizmetlerinden Ürünleri Getir, +Get Items from Prescriptions,Reçeteden Öğeleri Getir, +Get Items from Product Bundle,Bundle Ürün Öğelerini Getir, +Get Suppliers,Tedarikçileri Getir, +Get Suppliers By,Tedarikçiye göre Getir, +Get Updates,Güncellemeler Al, +Get customers from,Müşterileri şu adresten Getir:, +Get from Patient Encounter,Hasta Envanterinden Getir, +Getting Started,Başlarken, 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, -GoCardless SEPA Mandate,GoCardless SEPA Mandate, -GoCardless payment gateway settings,GoCardless ödeme ağ geçidi ayarları, -Goal and Procedure,Hedef ve Prosedür, +Go to the Desktop and start using ERPNext,Masaüstüne gidip ERPNext'i kullanmaya başlayabilirsiniz, +GoCardless SEPA Mandate,GoCardless SEPA Yetkisi, +GoCardless payment gateway settings,GoCardless ödeme ağ özellikleri ayarları, +Goal and Procedure,Hedef ve çember, Goals cannot be empty,Hedefleri boş olamaz, Goods In Transit,Transit Ürünler, -Goods Transferred,Transfer Edilen Mallar, -Goods and Services Tax (GST India),Mal ve Hizmet Vergisi (GST India), -Goods are already received against the outward entry {0},{0} dış girişine karşı ürünler zaten alındı, +Goods Transferred,Edilen Mallar'ı transfer et, +Goods and Services Tax (GST India),Mal ve Hizmet Vergisi (GST Hindistan), +Goods are already received against the outward entry {0},{0} dış girişine karşı ürünler zaten alınmış, Government,Devlet, Grand Total,Genel Toplam, -Grant,hibe, -Grant Application,Hibe başvurusu, -Grant Leaves,Hibe Yaprakları, -Grant information.,Bilgi verin., +Grant,İzin ver, +Grant Application,Uygulamaya izin ver, +Grant Leaves,İzin ver, +Grant information.,Bilgi ver., Grocery,Bakkal, -Gross Pay,Brüt ödeme, -Gross Profit,Brüt kar, -Gross Profit %,Brüt Kazanç%, +Gross Pay,Brüt Ödeme, +Gross Profit,Brüt Kar, +Gross Profit %,Brüt Kar %, Gross Profit / Loss,Brüt Kar / Zarar, -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, -Group by Voucher,Dekont Grubu, -Group by Voucher (Consolidated),Fişe Göre Grup (Konsolide), +Gross Purchase Amount,Brüt Alış Tutarı, +Gross Purchase Amount is mandatory,Brüt Alış Tutarı zorunludur, +Group by Account,Hesaba göre Gruplandır, +Group by Party,Cariye göre Gruplandır, +Group by Voucher,Fişe göre Gruplandır, +Group by Voucher (Consolidated),Fişe göre Gruplandır (Konsolide), Group node warehouse is not allowed to select for transactions,Grup düğüm depo işlemleri için seçmek için izin verilmez, -Group to Non-Group,Sigara Grup Grup, -Group your students in batches,gruplar halinde Grup öğrencilerinizin, +Group to Non-Group,Gruptan Grup Dışına, +Group your students in batches,gruplar halinde Grup uzantılarınızın, Groups,Gruplar, Guardian1 Email ID,Guardian1 E-posta Kimliği, Guardian1 Mobile No,Guardian1 Mobil yok, -Guardian1 Name,Guardian1 Adı, +Guardian1 Name,Veli1 Adı, Guardian2 Email ID,Guardian2 E-posta Kimliği, Guardian2 Mobile No,Guardian2 Mobil yok, Guardian2 Name,Guardian2 Adı, -Guest,Konuk, +Guest,Misafir, HR Manager,İK Yöneticisi, HSN,HSN, -HSN/SAC,HSN / SAC, +HSN/SAC,HSN / SAK, Half Day,Yarım Gün, -Half Day Date is mandatory,Yarım Gün Tarih zorunludur, +Half Day Date is mandatory,Yarım Gün Tarih cezaları, Half Day Date should be between From Date and To Date,Yarım Gün Tarih Tarihinden ve Tarihi arasında olmalıdır, Half Day Date should be in between Work From Date and Work End Date,"Yarım Gün Tarih, İş Başlangıç Tarihi ile İş Bitiş Tarihi arasında olmalıdır.", Half Yearly,Yarım Yıllık, -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 day date should be in between from date and to date,Yarım gün tarihi 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 Müdürü, -Health Care,Sağlık hizmeti, -Healthcare,Sağlık hizmeti, +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, +Healthcare Practitioner not available on {0},Sağlık Uygulanıcısı {0} tarihinde mevcut değil, Healthcare Practitioner {0} not available on {1},{1} üzerinde Sağlık Uygulayıcısı {0} mevcut değil, Healthcare Service Unit,Sağlık Hizmet Birimi, -Healthcare Service Unit Tree,Sağlık hizmeti birim ağacı, +Healthcare Service Unit Tree,Sağlık birim ağacı hizmeti, Healthcare Service Unit Type,Sağlık Hizmeti Birim Türü, Healthcare Services,Sağlık Hizmetleri, -Healthcare Settings,Sağlık ayarları, +Healthcare Settings,Sağlık Ayarları, Hello,Merhaba, Help Results for,Sonuçlar için Yardım, High,Yüksek, High Sensitivity,Yüksek hassasiyet, -Hold,Muhafaza et, -Hold Invoice,Faturayı Tut, +Hold,Tut/Beklet, +Hold Invoice,Faturayı Beklet, Holiday,Tatil, Holiday List,Tatil Listesi, Hotel Rooms of type {0} are unavailable on {1},"{1} türündeki Otel Odaları, {1}", Hotels,Oteller, Hourly,Saatlik, -Hours,Saatler, +Hours,Saat, 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 required for exemption calculation,Muafiyet hesaplaması için gerekli ev kiralama masrafları, 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 Kaynağı, +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 Available (whether in full op part),ITC Müsait (tam hüküm olsun), ITC Reversed,ITC Tersine Döndü, 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ın Alma Siparişi gibi işlemlerde, 'Fiyat Listesi Oranı' alanından ziyade 'Oran' 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 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, yürüyüşle ilgili Sadakat Programı ile otomatik olarak bağlantıyı kesecektir (kaydetme sırasında).", +"If multiple Pricing Rules continue to prevail, users are asked to set Priority manually to resolve conflict.","Birden fazla sıralama Kuralo hakimse, kullanıcılardan zorunu geçmek için Önceliği elle ayarlamaları yönlendiriyor", +"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 yazılacaktır. Fiyatlandırma Kuralı oranı son oran, bunlardan daha fazla ceza uygulanmalı. Bu nedenle, Satış Siparişi, Satınalma Siparişi gibi işlemlerde, 'Fiyat Listesi Oranı' alandakin bölümler 'Oran' bölgeye alınıyor.", +"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ı alıcılara bağlı olarak bulunuyorsa, Öncelik uygulanır. Varsayılan değer sıfır (boş) ise Öncelik 0 ile 20 arasında bir sayıdır. Yüksek birimi aynı şekilde birden fazla Fiyatlandırma Kuralları varsa o sonucu 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.", Ignore Existing Ordered Qty,Mevcut Sipariş Miktarını Yoksay, @@ -1249,59 +1249,59 @@ Import Master Data,Ana Verileri İçe Aktar, 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'leri İçe Aktarma, Importing Parties and Addresses,Tarafları ve Adresleri İçe Aktarma, In Maintenance,Bakımda, In Production,Üretimde, -In Qty,Miktarında, -In Stock Qty,Stok adet, -In Stock: ,Stokta var:, -In Value,Değer, +In Qty,Giriş Miktarı, +In Stock Qty,Stok Miktarı, +In Stock: ,Stokta var: , +In Value,Giriş Maliyeti, "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,UOM'yi dahil et, +Include Default Book Entries,Varsayılan Defter Girişlerini Dahil et, +Include Exploded Items,Patlatılmış Öğeleri Dahil et, +Include POS Transactions,POS İşlemlerini Dahil et, +Include UOM,Birimi Dahil et, Included in Gross Profit,Brüt Kâr Dahil, Income,Gelir, Income Account,Gelir Hesabı, -Income Tax,Gelir vergisi, -Incoming,Alınan, -Incoming Rate,Gelen oranı, +Income Tax,Gelir Vergisi, +Incoming,Gelen, +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, +Inpatient Record,Yatan Hasta Kaydı, Insert,Ekle, -Installation Note,Kurulum Not, -Installation Note {0} has already been submitted,Kurulum Not {0} zaten gönderildi, +Installation Note,Kurulum Notları, +Installation Note {0} has already been submitted,Kurulum Notu {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ükleme, +Installing presets,Önayarları yükleniyor, 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,Devletlerarası Tedarikler, -Interest Amount,Faiz tutarı, -Interests,İlgi, +Inter-State Supplies,Ülkeler arası Tedarik, +Interest Amount,Faiz Tutarı, +Interests,İlgi Alanları, Intern,Stajyer, Internet Publishing,İnternet Yayıncılığı, -Intra-State Supplies,Devlet İçi Malzemeleri, +Intra-State Supplies,Devlet İçi Malzemeler, Introduction,Giriş, Invalid Attribute,Geçersiz Özellik, -Invalid Blanket Order for the selected Customer and Item,Seçilen Müşteri ve Öğe için Geçersiz Battaniye Siparişi, +Invalid Blanket Order for the selected Customer and Item,Seçilen Müşteri ve Ürün için Geçersiz Açık Sipariş, 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'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}, @@ -1311,14 +1311,14 @@ Invalid {0},Geçersiz {0}, Invalid {0} for Inter Company Transaction.,Şirketler Arası İşlem için geçersiz {0}., Invalid {0}: {1},Geçersiz {0}: {1}, Inventory,Stok, -Investment Banking,Yatırım bankacılığı, +Investment Banking,Yatırım Bankacılığı, Investments,Yatırımlar, Invoice,Fatura, Invoice Created,Oluşturulan Fatura, Invoice Discounting,Fatura İndirimi, Invoice Patient Registration,Fatura Hasta Kayıt, Invoice Posting Date,Fatura Gönderme Tarihi, -Invoice Type,Fatura türü, +Invoice Type,Fatura Türü, Invoice already created for all billing hours,"Fatura, tüm faturalandırma saatleri için zaten oluşturuldu", Invoice can't be made for zero billing hour,"Fatura, sıfır faturalandırma saati için yapılamaz", Invoice {0} no longer exists,Fatura {0} artık mevcut değil, @@ -1326,24 +1326,24 @@ Invoiced,Faturalandı, 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'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,Donmuş, -Is Group,Grup, +Is Active,Aktif mi, +Is Default,Varsayılan mı, +Is Existing Asset,Varolan Varlık mu, +Is Frozen,Dondurulmuş mu, +Is Group,Grup mu, Issue,Sorun, -Issue Material,Sayı Malzeme, +Issue Material,Sorun Materyali, Issued,Veriliş, Issues,Sorunlar, It is needed to fetch Item Details.,Bu Ürün Detayları getirmesi için gereklidir., Item,Ürün, -Item 1,Madde 1, -Item 2,Madde 2, -Item 3,Madde 3, -Item 4,Madde 4, -Item 5,Madde 5, +Item 1,Öge 1, +Item 2,Öge 2, +Item 3,Öge 3, +Item 4,Öge 4, +Item 5,Öge 5, Item Cart,Ürün Sepeti, Item Code,Ürün Kodu, Item Code cannot be changed for Serial No.,Ürün Kodu Seri No için değiştirilemez, @@ -1352,69 +1352,69 @@ Item Description,Ürün Tanımı, 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,Öğe adı, +Item Name,Ürün 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 '{1}' 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ı, +Item Variant Settings,Öge Varyant Ayarları, Item Variant {0} already exists with same attributes,Öğe Variant {0} zaten aynı özelliklere sahip bulunmaktadır, 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ı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, -Item {0} does not exist in the system or has expired,Ürün {0} sistemde yoktur veya süresi dolmuştur, +Item has variants.,Öğe varyantlara sahip., +Item must be added using 'Get Items from Purchase Receipts' button,Ürün kumandası 's alma makbuzlarını Öğeleri alın' kullanılarak eklenmelidir, +Item valuation rate is recalculated considering landed cost voucher amount,Ürün değerleme oranı yüklenen maliyet fişi tutarı dikkate alınarak yeniden hesaplanır, +Item variant {0} exists with same attributes,Ürün çeşidi {0} aynı büyümeye sahip bulunmaktadır, +Item {0} does not exist,Ürün {0} yok, +Item {0} does not exist in the system or has expired,Ürün {0} sistemi yoktur veya süresi dolmuştur, Item {0} has already been returned,Ürün {0} zaten iade edilmiş, Item {0} has been disabled,{0} devredışı bırakılmış, -Item {0} has reached its end of life on {1},Ürün {0} {1}de kullanım ömrünün sonuna gelmiştir., -Item {0} ignored since it is not a stock item,Stok ürünü olmadığından Ürün {0} yok sayıldı, +Item {0} has reached its end of life on {1},Ürün {0} {1}de kullanım süresinin sonuna gelmiştir., +Item {0} ignored since it is not a stock item,Stok ürün arızası Ürün {0} yok sayıldı, "Item {0} is a template, please select one of its variants","{0} Öğe bir şablon, türevleri birini seçiniz", Item {0} is cancelled,Ürün {0} iptal edildi, Item {0} is disabled,Öğe {0} devre dışı, Item {0} is not a serialized Item,Ürün {0} bir seri Ürün değildir, Item {0} is not a stock Item,Ürün {0} bir stok ürünü değildir, -Item {0} is not active or end of life has been reached,Ürün {0} aktif değil veya kullanım ömrünün sonuna gelindi, -Item {0} is not setup for Serial Nos. Check Item master,"Ürün {0} Seri No Kontrol ürünü değildir, Ürün alanını kontrol ediniz", -Item {0} is not setup for Serial Nos. Column must be blank,Ürün {0} Seri No kurulumu değildir. Sütun boş bırakılmalıdır, +Item {0} is not active or end of life has been reached,Ürün {0} aktif değil veya kullanım süresinin sonuna gelindi, +Item {0} is not setup for Serial Nos. Check Item master,"Ürün {0} Seri No Kontrol Ürünü Değildir, Ürünü Kapatınız", +Item {0} is not setup for Serial Nos. Column must be blank,Ürün {0} Seri Kurulum yok. Sütün boş bırakılmalıdır, Item {0} must be a Fixed Asset Item,Öğe {0} Sabit Kıymet Öğe olmalı, Item {0} must be a Sub-contracted Item,Ürün {0} bir taşeron ürünü olmalıdır, -Item {0} must be a non-stock item,{0} stok korunmayan ürün olmalıdır, +Item {0} must be a non-stock item,{0} stok muhafazayan ü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ın Alma Emri 'Hammadde Tedarik' 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, +Item {0} not found in 'Raw Materials Supplied' table in Purchase Order {1},Satınalma Emri 'Hammadde Tedarik' Tabloda bulunamayan Öğe {0} {1}, +Item {0}: Ordered qty {1} cannot be less than minimum order qty {2} (defined in Item).,Öğe {0}: Sıralı adet {1} minimum sipariş adet {2} (Öğe tanımlanan) daha az olamaz., +Item: {0} does not exist in the system,Ürün: {0} sistemi mevcut değil, Items,Ürünler, -Items Filter,Öğeler Filtre, +Items Filter,Öğeler Filtresi, 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 {0} created,İş kartı {0} oluşturuldu, +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,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, +Join,Katıl, +Journal Entries {0} are un-linked,Yevmiye Kayıtları {0}-un bağlı olduğu, +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şı toplantıları yok, Kanban Board,Kanban Kurulu, Key Reports,Anahtar Raporlar, LMS Activity,LMS Etkinliği, -Lab Test,Laboratuvar testi, -Lab Test Report,Lab Test Raporu, +Lab Test,Laboratuvar Testi, +Lab Test Report,Laboratuvar Test Raporu, Lab Test Sample,Laboratuvar Testi Örneği, -Lab Test Template,Lab Test Şablonu, -Lab Test UOM,Laboratuvar Testi UOM, +Lab Test Template,Laboratuvar Testi Şablonu, +Lab Test UOM,Laboratuvar Testi Birimi, Lab Tests and Vital Signs,Laboratuar Testleri ve Hayati İşaretler, Lab result datetime cannot be before testing datetime,"Lab sonuç datetime, datetime testinden önce olamaz", -Lab testing datetime cannot be before collection datetime,"Laboratuvar testi tarih saati, toplama tarihinden önce olamaz", +Lab testing datetime cannot be before collection datetime,"Laboratuvar test tarih saati, toplama işlemi önce olamaz", Label,Etiket, -Laboratory,laboratuvar, +Laboratory,Laboratuvar, Language Name,Dil Adı, Large,Büyük, Last Communication,Son İletişim, @@ -1422,286 +1422,286 @@ Last Communication Date,Son İletişim Tarihi, Last Name,Soyadı, Last Order Amount,Son Sipariş Miktarı, Last Order Date,Son Sipariş Tarihi, -Last Purchase Price,Son Satın Alma Fiyatı, +Last Purchase Price,Son Satınalma Fiyatı, Last Purchase Rate,Son Satış Fiyatı, -Latest,son, -Latest price updated in all BOMs,Tüm BOM'larda güncellenen son fiyat, -Lead,Potansiyel Müşteri, +Latest,Son, +Latest price updated in all BOMs,Tüm BOM'larda güncellenen son fiyat, +Lead,Müşteri Adayı, Lead Count,Müşteri Adayı Sayısı, -Lead Owner,Potansiyel Müşteri Sahibi, +Lead Owner,Müşteri Adayı 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,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, +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ü, +Leave Type {0} cannot be allocated since it is leave without pay,o ödeme yapmadan terk beri Türü {0} tahsisi gereksiz bırakın, +Leave Type {0} cannot be carry-forwarded,{0} carry-ilet çocuklar 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,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,Yapraklar, -Leaves Allocated Successfully for {0},İzinler {0} için başarıyla tahsis edildi, -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ıl başına bırakır, -Ledger,defteri kebir, +Leave Without Pay,Ücretsiz izin, +Leave and Attendance,Puantaj ve İzin, +Leave application {0} already exists against the student {1},{1} öğrencine karşı {0} çalışanı zaten bırak, +"Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}","Öncelik tahsis edememek izin {0}, izin özellikleri zaten devredilen 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}","İzin yapısı zaten devredilen gelecek izin tahsisi kayıtlarında olduğu gibi, daha önce {0} iptal / tatbik etmek anlamsız bırakın {1}", +Leave of type {0} cannot be longer than {1},{0} türündeki izin, {1}'den uzun olamaz, +Leaves,İzinler, +Leaves Allocated Successfully for {0},{0} için Başarıyla Tahsis Edilen İzinler, +Leaves has been granted sucessfully,İzinler başarıyla verildi, +Leaves must be allocated in multiples of 0.5,İzinler 0,5'in katları şeklinde tahsis edilmelidir, +Leaves per Year,Yıllık İzin, +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, Liability,Borç, License,Lisans, Lifecycle,Yaşam döngüsü, -Limit,sınır, -Limit Crossed,sınır Çapraz, -Link to Material Request,Malzeme İsteğine Bağlantı, +Limit,Limit, +Limit Crossed,Limit Çapraz, +Link to Material Request,Malzeme Talebi Bağlantısı, 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,borç, +Loan,Kredi, 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 ödeme, +Loan Repayment,Kredi Geri Ödemesi, 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,Giriş, +Log,Log, Logs for maintaining sms delivery status,Sms teslim durumunu korumak için günlükleri, -Lost,Kayıp, -Lost Reasons,Kayıp Sebepler, +Lost,Kaybedildi, +Lost Reasons,Kayıp Nedenleri, Low,Düşük, Low Sensitivity,Düşük Hassasiyet, Lower Income,Alt Gelir, -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 Amount,Sadakat Tutarı, +Loyalty Point Entry,Sadakat Puanı 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 factorne göre harcanan tutarlardan (Satış Faturası yoluyla) hesaplanacaktır.", Loyalty Points: {0},Sadakat Puanları: {0}, -Loyalty Program,Sadakat programı, -Main,Ana, +Loyalty Program,Sadakat Programı, +Main,Main, Maintenance,Bakım, Maintenance Log,Bakım Günlüğü, -Maintenance Manager,Bakım Müdürü, -Maintenance Schedule,Bakım programı, +Maintenance Manager,Bakım Yöneticisi, +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 yapmak, +Make Payment,Ödeme Yap, Make project from a template.,Bir şablondan proje yapın., -Making Stock Entries,Stok Girişleri Yapımı, +Making Stock Entries,Stok Hareketi Yap, 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,Projeleri Yönetme, -Managing Subcontracting,Yönetme Taşeronluk, +Manage your orders,Siparişlerinizi Yönetin, +Management,Yönetim, +Manager,Yönetici, +Managing Projects,Proje Yönetimi, +Managing Subcontracting,Taşeron Yönetimi, Mandatory,Zorunlu, Mandatory field - Academic Year,Zorunlu alan - Akademik Yıl, -Mandatory field - Get Students From,Zorunlu alan - Öğrencileri Alın, +Mandatory field - Get Students From,Zorunlu alan - Öğrencileri Al, Mandatory field - Program,Zorunlu alan - Program, -Manufacture,üretim, +Manufacture,Üretim, Manufacturer,Üretici, -Manufacturer Part Number,Üretici kısım numarası, +Manufacturer Part Number,Üretici Parça Numarası, Manufacturing,Üretim, Manufacturing Quantity is mandatory,Üretim Miktarı zorunludur, -Mapping,haritalama, +Mapping,Eşleme, Mapping Type,Eşleme Türü, -Mark Absent,Gelmedi işaretle, -Mark Attendance,Seyirci İzleme, -Mark Half Day,Yarım Gün İşaretle, -Mark Present,Mevcut İşaretle, +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, Marketing,Pazarlama, -Marketing Expenses,Pazarlama giderleri, +Marketing Expenses,Pazarlama Giderleri, Marketplace,Pazaryeri, -Marketplace Error,Marketplace Hatası, -Masters,Alanlar, +Marketplace Error,Pazaryeri Hatası, +Masters,Masters, Match Payments with Invoices,Faturalar ile maç Ödemeleri, -Match non-linked Invoices and Payments.,Bağlantısız Faturaları ve Ödemeleri eşleştirin., +Match non-linked Invoices and Payments.,Bağlantısız Faturaları ve Ödemeleri eşleştirme., Material,Malzeme, -Material Consumption,Malzeme tüketimi, -Material Consumption is not set in Manufacturing Settings.,Malzeme Ayarları Üretim Ayarları'nda ayarlanmamıştır., +Material Consumption,Malzeme Tüketimi, +Material Consumption is not set in Manufacturing Settings.,Malzeme Ayarları Üretim Ayarları'nda ayarlanmamıştır., Material Receipt,Malzeme Alındısı, -Material Request,Malzeme talebi, +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ı.", -Material Request of maximum {0} can be made for Item {1} against Sales Order {2},Maksimum {0} Malzeme Talebi Malzeme {1} için Satış Emri {2} karşılığında yapılabilir, +"Material Request not created, as quantity for Raw Materials already available.","Zaten var olan Hammadde miktarı olarak, Malzeme Talebi yaratılmadı.", +Material Request of maximum {0} can be made for Item {1} against Sales Order {2},Maksimum {0} Malzeme Talebi Malzeme {1} için Satış Siparişi {2} yapılabilir, Material Request to Purchase Order,Satınalma Siparişi Malzeme Talebi, Material Request {0} is cancelled or stopped,Malzeme Talebi {0} iptal edilmiş veya durdurulmuştur, -Material Request {0} submitted.,{0} Malzeme İsteği gönderildi., +Material Request {0} submitted.,{0} Malzeme Talebi gönderildi., Material Transfer,Malzeme Transferi, -Material Transferred,Transfer Edilen Malzeme, -Material to Supplier,Tedarikçi Malzeme, -Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1},"Azami Muafiyet Tutarı, {1} Vergi Muafiyeti Kategorisi {1} azami muafiyet tutarından fazla olamaz.", +Material Transferred,Edilen Malzeme Transferi, +Material to Supplier,Tedarikçi için Malzeme, +Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1},"Azami Muafiyet Tutarı, {1} Vergi Muafiyeti Kategorisi {1} azami muafiyet yöneticilerinden fazla olamaz.", Max benefits should be greater than zero to dispense benefits,"Maksimum faydalar, faydaları dağıtmak için sıfırdan büyük olmalıdır", -Max discount allowed for item: {0} is {1}%,Malzeme {0 }için izin verilen maksimum indirim} {1}%, -Max: {0},Max: {0}, +Max discount allowed for item: {0} is {1}%,Malzeme {0}için izin verilen maksimum indirim} %{1}, +Max: {0},Maks: {0}, Maximum Samples - {0} can be retained for Batch {1} and Item {2}.,"Maksimum Örnekler - {0}, Toplu İş {1} ve Madde {2} için tutulabilir.", -Maximum Samples - {0} have already been retained for Batch {1} and Item {2} in Batch {3}.,"Maksimum Örnekler - {0}, Toplu İş {1} ve Öğe {2} için Toplu İş Alma İşlemi {3} içinde zaten tutuldu.", -Maximum amount eligible for the component {0} exceeds {1},{0} bileşenine uygun maksimum tutar {1} değerini aşıyor, -Maximum benefit amount of component {0} exceeds {1},{0} bileşeninin maksimum fayda miktarı {1} değerini aşıyor, +Maximum Samples - {0} have already been retained for Batch {1} and Item {2} in Batch {3}.,"Maksimum Örnekler - {0}, Toplu İş {1} ve Öğe {2} için Toplu İş Alma İşlemi {3} içinde zaten tutulmuştur.", +Maximum amount eligible for the component {0} exceeds {1},{0}yapıya uygun maksimum tutarlar {1} değerini aşıyor, +Maximum benefit amount of component {0} exceeds {1},{0}yapının maksimum fayda miktarı {1} değerini aşıyor, Maximum benefit amount of employee {0} exceeds {1},{0} çalışanının maksimum fayda miktarı {1} değerini aşıyor, -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}, +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ü izin verilen maksimum izin {1}, Medical,Tıbbi, Medical Code,Tıbbi kod, Medical Code Standard,Tıbbi Kod Standardı, -Medical Department,Tıp Departmanı, +Medical Department,Tıp Bölümü, Medical Record,Tıbbi kayıt, Medium,Orta, -Meeting,Toplantı, +Meeting,toplantı, Member Activity,Üye Etkinliği, Member ID,Kullanıcı Kimliği, -Member Name,Üye adı, -Member information.,Üye bilgisi., +Member Name,Üye Adı, +Member information.,Üye Bilgisi., Membership,Üyelik, Membership Details,Üyelik Detayları, Membership ID,Üyelik Kimliği, -Membership Type,üyelik tipi, -Memebership Details,Memebership Detayları, -Memebership Type Details,Memebership Türü Ayrıntılar, -Merge,birleşmek, -Merge Account,Hesabı Birleştir, +Membership Type,Üyelik Tipi, +Memebership Details,Üyelik Detayları, +Memebership Type Details,Üyelik Türü Ayrıntıları, +Merge,Birleştir, +Merge Account,Hesap 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", +"Merging is only possible if following properties are same in both records. Is Group, Root Type, Company","Aşağıdaki özelliklerden 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, +Message Sent,Mesaj Gönderildi, Method,Yöntem, -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'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 Amttan 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), +Minimum Lead Age (Days),Minimum Müşteri Aday Kayı 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 value for Password, API Key or Shopify URL","Şifre, API Anahtarı veya Shopify URL için eksik değer", -Mode of Payment,Ödeme şekli, -Mode of Payments,Ödemeler Modu, -Mode of Transport,Ulaşım modu, +Mode of Payment,Ödeme Şekli, +Mode of Payments,Ödemeler Şekli, +Mode of Transport,Ulaşım Şekli, Mode of Transportation,Ulaşım Şekli, Mode of payment is required to make a payment,Ödeme Modu ödeme yapmak için gereklidir, -Model,model, +Model,Modeli, Moderate Sensitivity,Orta hassasiyet, Monday,Pazartesi, Monthly,Aylık, Monthly Distribution,Aylık Dağılımı, Monthly Repayment Amount cannot be greater than Loan Amount,Aylık Geri Ödeme Tutarı Kredi Miktarı daha büyük olamaz, More,Daha fazla, -More Information,Daha fazla bilgi, +More Information,Daha Fazla Bilgi, More than one selection for {0} not allowed,{0} için birden fazla seçime izin verilmiyor, More...,Daha..., -Motion Picture & Video,Motion Picture & Video, -Move,Hareket, -Move Item,Taşı Öğe, -Multi Currency,Çoklu Para Birimi, +Motion Picture & Video,Sinema Filmi ve Video, +Move,Taşı, +Move Item,Öğe Taşı, +Multi Currency,Çokluk Para Birimi, Multiple Item prices.,Çoklu Ürün fiyatları., -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 Loyalty Program found for the Customer. Please select manually.,Müşteri için Çokluk Sadakat 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, kesinlikle atayarak çatışmayın 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 error: {0},İsim hatası: {0}, 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, +Name or Email is mandatory,Adı veya E-posta koruyucuları, 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, +Negative Valuation Rate is not allowed,Negatif Değerleme Oranına izin verilmez, 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, -Net Cash from Operations,Faaliyetlerden Kaynaklanan Net Nakit, -Net Change in Accounts Payable,Borç Hesapları Net Değişim, -Net Change in Accounts Receivable,Alacak Hesapları Net Değişim, +Net Cash from Financing,Finansmandan Elde Edilen Net Nakit, +Net Cash from Investing,Yatırımdan Elde Edilen Net Nakit, +Net Cash from Operations,Faaliyetlerden Elde Edilen Net Nakit, +Net Change in Accounts Payable,Borç Hesabı Net Değişim, +Net Change in Accounts Receivable,Alacak Hesabı Net Değişim, Net Change in Cash,Nakit Net Değişim, Net Change in Equity,Özkaynak Net Değişim, -Net Change in Fixed Asset,Sabit Varlık Net Değişim, +Net Change in Fixed Asset,Sabit Kıymet 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,Net Ödeme, Net Pay cannot be less than 0,Net Ücret az 0 olamaz, -Net Profit,Net kazanç, +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 BOM,Yeni BOM, +New Address,Yeni Adres, +New BOM,Yeni Ürün Ağacı, 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üşteriler, -New Department,Yeni bölüm, -New Employee,Yeni çalışan, -New Location,Yeni konum, -New Quality Procedure,Yeni Kalite Prosedürü, +New Customer Revenue,Yeni Müşteri Geliri, +New Customers,Yeni Müşteriler, +New Department,Yeni Departman, +New Employee,Yeni Çalışan, +New Location,Yeni Konum, +New Quality Procedure,Yeni Kalite hükümleri, 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 girişiyle veya alım makbuzuyla ayarlanmalıdır, +New Serial No cannot have Warehouse. Warehouse must be set by Stock Entry or Purchase Receipt,Yeni Seri Deposuz olamaz. Depo Stok Hareketi ile 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, +New task,yeni görev, +New {0} pricing rules are created,Yeni {0} fiyatlandırma kuralları, +Newsletters,Haber Bültenleri, Newspaper Publishers,Gazete Yayıncıları, -Next,İleri, +Next,Sonraki, 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çbir eylem, +Next Contact Date cannot be in the past,Sonraki İletişim Tarihi olamaz, +Next Steps,Sonraki Adımlar, +No Action,İşlem yok, No Customers yet!,Henüz müşteri yok!, -No Data,Hiçbir veri, -No Delivery Note selected for Customer {},Müşteri için {} dağıtım Notu seçilmedi, +No Data,Hiç Veri yok, +No Delivery Note selected for Customer {},Müşteri için {} dağıtım Notu çalıştırmadı, No Employee Found,Çalışan Bulunamadı, No Item with Barcode {0},Barkodlu Ürün Yok {0}, No Item with Serial No {0},Seri Numaralı Ürün Yok {0}, -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 available for transfer,Hayır Öğeler aktarımı için kullanılabilir, +No Items selected for transfer,Transfer için hiçbir öğe düşünülmedi, +No Items to pack,Ambalaj Ürün Yok Olacak, 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çbir Açıklamalar, +No Remarks,Remark yok, 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ı, -No Student Groups created.,Hiçbir Öğrenci Grupları oluşturuldu., -No Students in,Içinde öğrenci yok, +No Salary Structure assigned for Employee {0} on given date {1},{1} belirli bir anda Çalışana {0} atanan Maaş Yapısı yok, +No Staffing Plans found for this Designation,Bu belirleme için hiçbir kişisel tesis bulunamadı, +No Student Groups created.,Hiçbir Öğrenci Grupları mevcut., +No Students in,İçinde öğrenci yok, No Tax Withholding data found for the current Fiscal Year.,Mevcut Mali Yılı için Vergi Stopajı verileri bulunamadı., No Work Orders created,İş emri oluşturulmadı, No accounting entries for the following warehouses,Şu depolar için muhasebe girdisi yok, -No active or default Salary Structure found for employee {0} for the given dates,Verilen tarihler için çalışan {0} için bulunamadı aktif veya varsayılan Maaş Yapısı, +No active or default Salary Structure found for employee {0} for the given dates,veri tarihleri için çalışanlar {0} için bulunma aktif veya varsayılan Maaş Yapısı, No contacts with email IDs found.,E-posta kimlikleri olan hiç kişi bulunamadı., No data for this period,Bu süre için veri yok, No description given,Açıklama verilmemiştir, @@ -1709,18 +1709,18 @@ No employees for the mentioned criteria,Sözü edilen ölçütler için çalış 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 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 material request created,Malzeme oluşturmadı, +No more updates,Başka güncelleme yok, +No of Interactions,Etkileşim Yok, +No of Shares,Ödeme Sayısı, +No pending Material Requests found to link for the given items.,Sağlanan hizmet için bağlantı bekleyen herhangi bir Malzeme Talebi bulunamadı., No products found,Ürün bulunamadı, No products found.,Hiçbir ürün bulunamadı., No record found,Kayıt Bulunamadı, No records found in the Invoice table,Fatura tablosunda kayıt bulunamadı, No records found in the Payment table,Ödeme tablosunda kayıt bulunamadı, -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 replies from,Şundan yanıt yok, +No salary slip found to submit for the above selected criteria OR salary slip already submitted,Yukarıdaki özelliklere göre maaş fişi bulunmayan VEYA maaş fişi zaten gönderildi, No tasks,Görev yok, No time sheets,Hiçbir zaman çarşaf, No values,Değer yok, @@ -1729,29 +1729,29 @@ Non GST Inward Supplies,GST İç İçe Olmayan Sarf Malzemeleri, Non Profit,Kar Yok, Non Profit (beta),Kar Olmayan (beta), Non-GST outward supplies,GST dışı dış sarf malzemeleri, -Non-Group to Group,Grup grup dışı, +Non-Group to Group,grup grup dışı, 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, +None of the items have any change in quantity or value.,Öğelerin genişliği miktar veya değer bir değişiklik var., +Nos,Nos, Not Available,Mevcut değil, Not Marked,İşaretli değil, -Not Paid and Not Delivered,Değil Ücretli ve Teslim Edilmedi, -Not Permitted,İzin Değil, -Not Started,Başlatan Değil, -Not active,Aktif Değil, -Not allow to set alternative item for the item {0},{0} öğesi için alternatif öğe ayarlamaya izin verilmez, -Not allowed to update stock transactions older than {0},{0} dan eski stok işlemlerini güncellemeye izin yok, +Not Paid and Not Delivered,Ödenmedi ve Teslim Edilmedi, +Not Permitted,İzin yok, +Not Started,Başlatan yok, +Not active,Aktif değil, +Not allow to set alternative item for the item {0},{0} öğesi için alternatif öğeyi ayarlamaya izin verilmez, +Not allowed to update stock transactions older than {0},{0} dan eski stok durumunu güncellemeye izin yok, Not authorized to edit frozen Account {0},Dondurulmuş Hesabı {0} düzenleme yetkisi yok, Not authroized since {0} exceeds limits,{0} Yetkili değil {0} sınırı aşar, Not permitted for {0},Izin verilmez {0}, -"Not permitted, configure Lab Test Template as required","İzin verilmediğinde, Lab Test Şablonunu gerektiği gibi yapılandırın", -Not permitted. Please disable the Service Unit Type,İzin verilmedi. Lütfen Servis Ünitesi Tipini devre dışı bırakın, -Note: Due / Reference Date exceeds allowed customer credit days by {0} day(s),Not: nedeniyle / Referans Tarihi {0} gün izin müşteri kredi günü aştığı (ler), +"Not permitted, configure Lab Test Template as required","İzin verildiğinde, Lab Test Şablonunu gerektiği gibi yapılandırın", +Not permitted. Please disable the Service Unit Type,İzin verilmedi. Lütfen Servis Ünitesi Tipi devre dışı bırakın, +Note: Due / Reference Date exceeds allowed customer credit days by {0} day(s),Not: nedeniyle / Referans Tarihi {0} gün izin müşteri kredisini aştığı (ler), Note: Item {0} entered multiple times,Not: Ürün {0} birden çok kez girilmiş, -Note: Payment Entry will not be created since 'Cash or Bank Account' was not specified,"'Nakit veya Banka Hesabı' belirtilmediğinden ötürü, Ödeme Girdisi oluşturulmayacaktır", -Note: System will not check over-delivery and over-booking for Item {0} as quantity or amount is 0,Not: Miktar 0 olduğundan ötürü sistem Ürün {0} için teslimat ve ayırma kontrolü yapmayacaktır, -Note: There is not enough leave balance for Leave Type {0},Not: İzin tipi {0} için yeterli izin günü kalmamış, -Note: This Cost Center is a Group. Cannot make accounting entries against groups.,Not: Bu Maliyet Merkezi bir Grup. Gruplara karşı muhasebe kayıtları yapamazsınız., +Note: Payment Entry will not be created since 'Cash or Bank Account' was not specified,"Nakit veya Banka Hesabı'nın belirtilmesinden dolayı, Ödeme Girdisi oluşturulmayacaktır.", +Note: System will not check over-delivery and over-booking for Item {0} as quantity or amount is 0,"Not: Miktar veya miktar 0 olduğundan sistem, {0} Öğesi için fazla teslimatı ve fazla rezervasyonu kontrol etmeyecektir.", +Note: There is not enough leave balance for Leave Type {0},Not: İzin tipi {0} için yeterli izin gününde kalmamış, +Note: This Cost Center is a Group. Cannot make accounting entries against groups.,Not: Bu Maliyet Merkezi bir Gruptur. Gruplara karşı muhasebe girişi yapılamaz., Note: {0},Not: {0}, Notes,Notlar, Nothing is included in gross,Hiçbir şey brüt dahil değildir, @@ -1760,121 +1760,121 @@ Nothing to change,Değiştirecek bir şey yok, Notice Period,İhbar süresi, Notify Customers via Email,Müşterileri e-postayla bilgilendirin, Number,Numara, -Number of Depreciations Booked cannot be greater than Total Number of Depreciations,Rezervasyon amortismanları sayısı amortismanlar Toplam Sayısı fazla olamaz, +Number of Depreciations Booked cannot be greater than Total Number of Depreciations,Rezervasyon amortismanları sayısı amortismanları Toplam Sayısı fazla olamaz, Number of Interaction,Etkileşim Sayısı, 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 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, 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 Bağlılık Programının parçası olabilir., -Online Auctions,Online Müzayede, +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., +Online Auctions,Çevrimiçi 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, -Open BOM {0},Açık BOM {0}, -Open Item {0},Açık Öğe {0}, +"Only the Student Applicant with the status ""Approved"" will be selected in the table below.",Aşağıdaki tabloda yalnızca "Onaylandı" Zorunluluk sahibi Öğ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, +Open BOM {0},{0} Açık BOM Malzeme Listesi, +Open Item {0},{0} Açık Öğe, Open Notifications,Açık Bildirimler, -Open Orders,Açık siparişler, +Open Orders,Açık Siparişler, Open a new ticket,Yeni bir bilet aç, -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,Açılış, +Opening (Cr),Açılış (Alacak), +Opening (Dr),Açılış (Borç), +Opening Accounting Balance,Açılış Muhasebe Bakiyesi, +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 Balance,Açılış Bakiyesi, +Opening Balance Equity,Açılış Bakiyesi Hissesi, +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,Açılış Tarihi Kapanış Tarihinden ö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 Invoice Creation Tool,Açılış Faturası Oluşturma Aracı, +Opening Invoice Item,Açılış Faturası Kalemi, +Opening Invoices,Açılış Faturaları, +Opening Invoices Summary,Açılış Faturası Özeti, Opening Qty,Açılış Miktarı, -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, +Opening Stock,Açılış Stoku, +Opening Stock Balance,Açılış Stok Bakiyesi, +Opening Value,Açılış Değeri, +Opening {0} Invoice created,Açılış {0} Faturalandırma, 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 {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", +Operation Time must be greater than 0 for Operation {0},{0} Operasyonu için İşlem Süresi 0'dan büyük olmalıdır, +"Operation {0} longer than any available working hours in workstation {1}, break down the operation into multiple operations","{0} Operasyonu, {1} iş istasyonundaki herhangi bir kullanılabilir çalışma saatinden daha uzun, Operasyonu birden fazla işleme bölün", Operations,Operasyonlar, Operations cannot be left blank,Operasyon boş bırakılamaz, -Opp Count,Opp Sayısı, -Opp/Lead %,Satış Fırsatı/Müşteri Adayı yüzdesi, +Opp Count,Fırsat Sayısı, +Opp/Lead %,Satış Fırsatı / Müşteri Adayı %, Opportunities,Fırsatlar, -Opportunities by lead source,Başlıca kaynak olan fırsatlar, -Opportunity,fırsat, +Opportunities by lead source,Aday kaynağına göre fırsatlar, +Opportunity,Fırsat, Opportunity Amount,Fırsat Tutarı, -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, +Optional Holiday List not set for leave period {0},"İsteğe bağlı Tatil Listesi, {0} dönem izin için ayarlanmamış", +"Optional. Sets company's default currency, if not specified.","İsteğe bağlı. Eğer belirtilmemişse, şirketin genel para birimini belirler.", +Optional. This setting will be used to filter in various transactions.,İsteğe bağlı. Bu çeşitli ayar işlemlerini yapmak için kullanmaktır, +Options,Sepetler, +Order Count,Sipariş Sayısı, +Order Entry,Sipariş Kaydı, Order Value,Sipariş Değeri, Order rescheduled for sync,Senkronizasyon için sipariş yeniden planlandı, -Order/Quot %,Sipariş / Teklif%, -Ordered,Sipariş Edildi, +Order/Quot %,Sipariş / Teklif %, +Ordered,Sipariş verildi, Ordered Qty,Sipariş Miktarı, -"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", +"Ordered Qty: Quantity ordered for purchase, but not received.","Sipariş Edilen Miktar: Satın alınmak için sipariş verilmiş, ancak teslim alınmamış miktar", Orders,Siparişler, Orders released for production.,Üretim için verilen emirler., -Organization,organizasyon, -Organization Name,Kuruluş Adı, +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, +Out Value,Çıkış Değeri, +Out of Order,bozuk, Outgoing,Giden, -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,Ödenmemiş, +Outstanding Amount,Ödenmemiş Tutar, +Outstanding Amt,Ödenmemiş Tutar, +Outstanding Cheques and Deposits to clear,Kapatılacak Ödenmemiş Çekler ve Mevduatlar, 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,vadesi geçmiş, +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:, +Overlapping conditions found between:,Şunların sınırları arasında bulunan koşullar:, Owner,Sahibi, PAN,TAVA, -POS,POS, +POS,POS Satış Noktası, POS Profile,POS Profili, POS Profile is required to use Point-of-Sale,"POS Profili, Satış Noktasını Kullanmak için Gereklidir", 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,Ambalaj Makbuzu, -Packing Slip(s) cancelled,Ambalaj Makbuzları İptal Edildi, -Paid,Ücretli, +Packing Slip,Sevk İrsaliyesi, +Packing Slip(s) cancelled,Sevk İrsaliyesi iptal edildi, +Paid,Ödendi, 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,Veli Öğe {0} Stok Öğe olmamalıdır, +Parent Item {0} must not be a Stock Item,Ana Ürün {0} Stok Ürünü 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,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, -Party is mandatory,Parti zorunludur, +Party,Cari Hesap, +Party Name,Cari Adı, +Party Type,Cari Türü, +Party Type and Party is mandatory for {0} account,{0} hesabı için Cari Türü ve Cari zorunludur, +Party Type is mandatory,Cari Tipi zorunludur, +Party is mandatory,Cari zorunludur, Password,Parola, -Password policy for Salary Slips is not set,Maaş Fişleri için şifre politikası belirlenmedi, +Password policy for Salary Slips is not set,Maaş bordrosu için şifre politikası belirlenmedi, Past Due Date,Son Tarih, Patient,Hasta, Patient Appointment,Hasta Randevusu, @@ -1882,35 +1882,35 @@ Patient Encounter,Hasta Encounter, Patient not found,Hasta bulunamadı, Pay Remaining,Kalan Öde, Pay {0} {1},{0} {1} öde, -Payable,Borç, +Payable,Ödenecek Borç, Payable Account,Ödenecek Hesap, -Payable Amount,Ödenebilir miktar, -Payment,Tahsilat, +Payable Amount,Ödenecek Tutar, +Payment,Ödeme, 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 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ş 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 Gateway, -"Payment Gateway Account not created, please create one manually.","Ödeme Gateway Hesabı oluşturulmaz, el bir tane oluşturun lütfen.", +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 Entry has been modified after you pulled it. Please pull it again.,Bunu çektikten sonra Ödeme Girişi değiştirilmiş. Tekrar çekin lütfen., +Payment Entry is already created,Ödeme girişi 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 çıkışı 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 Name,Ödeme Ağ Geçidi Adı, Payment Mode,Ödeme Modu, -Payment Receipt Note,Ödeme Makbuzu Not, -Payment Request,Ödeme isteği, +Payment Receipt Note,Ödeme Makbuzu Dekontu, +Payment Request,Ödeme Talebi, Payment Request for {0},{0} için Ödeme İsteği, -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 Tems,Ödeme Koşulları, +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 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, @@ -1922,21 +1922,21 @@ Payroll Payable,Ödenecek Bordro, Payslip,maaş bordrosu, Pending Activities,Bekleyen Etkinlikleri, Pending Amount,Bekleyen Tutar, -Pending Leaves,Bekleyen Yapraklar, -Pending Qty,Bekleyen Adet, +Pending Leaves,Bekleyen İzinler, +Pending Qty,Bekleyen Miktar, Pending Quantity,Bekleyen Miktar, -Pending Review,Bekleyen İnceleme, +Pending Review,İnceleme Bekliyor, Pending activities for today,Bugün için Bekleyen faaliyetler, Pension Funds,Emeklilik fonları, Percentage Allocation should be equal to 100%,Yüzde Tahsisi % 100'e eşit olmalıdır, Perception Analysis,Algı Analizi, Period,Dönem, -Period Closing Entry,Dönem Kapanış Girişi, -Period Closing Voucher,Dönem Kapanış Makbuzu, -Periodicity,periyodik olarak tekrarlanma, +Period Closing Entry,Dönem Kapanış Kaydı, +Period Closing Voucher,Dönem Kapanış Fişi, +Periodicity,Periyodik olarak tekrarlanma, Personal Details,Kişisel Bilgiler, -Pharmaceutical,Ecza, -Pharmaceuticals,Ecza, +Pharmaceutical,İlaç, +Pharmaceuticals,İlaçlar, Physician,Doktor, Piecework,parça başı iş, Pincode,Pinkodu, @@ -1945,10 +1945,10 @@ Place Order,Sipariş, 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'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ın Alma Ayarlarında Tedarikçi Grubunu Ayarlayın., +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 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, @@ -1957,15 +1957,15 @@ Please click on 'Generate Schedule','Takvim Oluştura' tıklayınız, 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ın alma 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ınalma 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ın Alma 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ınalma 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 Tüketici Anahtarını girin, -Please enter API Consumer Secret,Lütfen API Tüketici Sırrı girin, +Please enter API Consumer Key,Lütfen API Consumer Keyi girin, +Please enter API Consumer Secret,Lütfen API Consumer Secreti 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, @@ -1973,18 +1973,18 @@ Please enter Delivery Date,Lütfen teslimat tarihini giriniz, Please enter Employee Id of this sales person,Bu satış kişinin Çalışan Kimliği giriniz, Please enter Expense Account,Gider Hesabı girin, Please enter Item Code to get Batch Number,Toplu Numarası almak için Ürün Kodu giriniz, -Please enter Item Code to get batch no,Toplu almak için Ürün Kodu girin, -Please enter Item first,Ürün Kodu girin, +Please enter Item Code to get batch no,Batch (Parti) numarasını almak için lütfen Ürün Kodunu girin, +Please enter Item first,Lütfen Ürün Kodunu girin, Please enter Maintaince Details first,Lütfen ilk önce Bakım Detayını girin, Please enter Planned Qty for Item {0} at row {1},Satır {1} deki {0} Ürünler için planlanan miktarı giriniz, Please enter Preferred Contact Email,Tercih İletişim Email giriniz, -Please enter Production Item first,Önce Üretim Ürününü giriniz, -Please enter Purchase Receipt first,İlk Satınalma Faturası giriniz, -Please enter Receipt Document,Makbuz Belge giriniz, -Please enter Reference date,Referrans tarihi girin, +Please enter Production Item first,Lütfen önce Üretim Ögesini giriniz, +Please enter Purchase Receipt first,Lütfen İlk Alış Fişini giriniz, +Please enter Receipt Document,Lütfen Fiş Belgesini giriniz, +Please enter Reference date,Referans tarihini 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'yi Tarihe Göre Girin, +Please enter Woocommerce Server URL,Lütfen Woocommerce Sunucusu URL'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, @@ -1993,405 +1993,405 @@ Please enter default currency in Company Master,Lütfen Şirket Alanına varsay Please enter message before sending,Lütfen Göndermeden önce mesajı giriniz, Please enter parent cost center,Lütfen ana maliyet merkezi giriniz, Please enter quantity for Item {0},Lütfen Ürün {0} için miktar giriniz, -Please enter relieving date.,Lütfen Boşaltma tarihi girin., -Please enter repayment Amount,geri ödeme miktarı giriniz, +Please enter relieving date.,Lütfen hafifletme tarihini girin., +Please enter repayment Amount,Lütfen geri ödeme Tutarını giriniz, Please enter valid Financial Year Start and End Dates,Geçerli Mali Yılı Başlangıç ve Bitiş Tarihleri girin, Please enter valid email address,Lütfen geçerli e-posta adresini girin, Please enter {0} first,İlk {0} giriniz, 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'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'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'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 Kurşun Adını {0} Kurşun'dan belirtin, +Please mention the Lead Name in Lead {0},Lütfen Aday Adını {0} Adaydan 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}, Please save the patient first,Lütfen önce hastayı kaydedin, -Please save the report again to rebuild or update,Yeniden oluşturmak veya güncellemek için lütfen raporu tekrar kaydedin, +Please save the report again to rebuild or update,Yeniden oluşturma veya güncelleme için lütfen raporu tekrar çalıştırma, "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 Apply Discount On,İndirim Açık Uygula Seçiniz, +Please select BOM against item {0},Lütfen {0} satırını karşı BOM'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 BOM in BOM field for Item {0},Ürün için ürün ağacı ürün ağacı 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 Charge Type first,İlk şarjı seçiniz, +Please select Company,Şirket seçiniz, +Please select Company and Designation,Lütfen Şirket ve Atamayı seçiniz, +Please select Company and Posting Date to getting entries,Giriş almak için lütfen Şirket ve Gönderme Tarihini 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 Repair,Tamamlanan Onarım için Bitiş Tarihi seçin, -Please select Course,Lütfen Kursu seçin, +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 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 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 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 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 mi" "Stok Öğe mi" nerede "Evet" ise Birimini seçme 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ş Tarihini çalıştırın, +Please select Party Type first,İlk Cari 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 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 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 Patient to get Lab Tests,Lab Testleri almak için lütfen Hastayı seçin, +Please select Posting Date before selecting Party,Cariyi seçmeden önce Gönderme Tarihi seçiniz, +Please select Posting Date first,İlk Gönderme Tarihini Seçiniz, +Please select Price List,Fiyat Listesini seçiniz, +Please select Program,Lütfen programı seçiniz, +Please select Qty against item {0},Lütfen {0} boyutunu 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 Start Date and End Date for Item {0},Ürün {0} için Başlangıç ve Bitiş tarihini seçiniz, +Please select Student Admission which is mandatory for the paid student applicant,Lütfen hamile öğrenci kabulü için zorunlu Kabul Öğrencisini seçin, Please select a BOM,Lütfen bir BOM seçin, -Please select a Batch for Item {0}. Unable to find a single batch that fulfills this requirement,Lütfen {0} Öğe için bir Toplu İşareti seçin. Bu gereksinimi karşılayan tek bir toplu bulunamadı, -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 Batch for Item {0}. Unable to find a single batch that fulfills this requirement,Lütfen {0} Öğe için bir Toplu İşareti seçin. Bu bölümde tek bir toplu bulunamadı, +Please select a Company,Bir Şirket Seçiniz, +Please select a batch,Lütfen bir parça seçin, +Please select a csv file,Bir csv dosyasını 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 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, +Please select a value for {0} quotation_to {1},{0} - {1} teklif için bir değer seçiniz, Please select a warehouse,Lütfen bir depo seçiniz, -Please select at least one domain.,Lütfen en az bir alan adı seçin., +Please select at least one domain.,Lütfen en az bir alan adı seçiniz., Please select correct account,Doğru hesabı seçin, Please select date,tarih seçiniz, -Please select item code,Ürün kodu seçiniz, +Please select item code,Ürün kodunu seçiniz, Please select month and year,Ay ve yıl seçiniz, 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 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 the Multiple Tier Program type for more than one collection rules.,Birden fazla kural koleksiyonu için lütfen Birden Çok Katmanlı Program türünü seçin., +Please select the assessment group other than 'All Assessment Groups',Lütfen 'Tüm Değerlendirme Grupları' sonraki değerlendirme gruplarını seçin., +Please select the document type first,Önce belgeyi seçiniz, +Please select weekly off day,Haftalık izin süresini 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 'On Ek İndirim Uygulanır' 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 'Gain/Loss Account on Asset Disposal' in Company {0},Lütfen 'Varlık Elden Çıkarılmasına İlişkin Kar / 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} yöneticinizde varsayılan Envanter Hesabı olarak ayarlayın., +Please set B2C Limit in GST Settings.,Lütfen GST Ayarlarında B2C Sınırını ayarlayın., +Please set Company,Lütfen şirket ayarı, 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 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 Default Payroll Payable Account in Company {0},Şirket Standart Bordro Ödenecek Hesap ayarı {0}, +Please set Depreciation related Accounts in Asset Category {0} or Company {1},"Lütfen Değer Kaybı ile ilgili Hesapları, Varlık Kategorisi {0} veya Firma {1} içinde belirleyin", +Please set Email Address,E-posta Adresini ayarla, 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 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 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 Hotel Room Rate on {},Otel Oda Fiyatı'nı {} olarak ayarlayın., +Please set Number of Depreciations Booked,Amortisman Sayısı göstergesi, +Please set Unrealized Exchange Gain/Loss Account in Company {0},Lütfen {0} suçlulardaki 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ü tablolar için çalışan paylaşımındaki Kullanıcı Kimliği Lütfen, +Please set a default Holiday List for Employee {0} or Company {1},Çalışan bir dahili Tatil Listesi seti Lütfen {0} veya Şirket {1}, +Please set account in Warehouse {0},Lütfen deposunu {0} 'da görüşü koy, +Please set an active menu for Restaurant {0},Lütfen restoran {0} için etkin bir menü ayarı yapın., +Please set associated account in Tax Withholding Category {0} against Company {1},Lütfen ilgili hesabı {1} suçlamaya 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 görünümü, +Please set default Cash or Bank account in Mode of Payment {0},{0} Ödeme biçiminde varsayılan nakit veya banka hesabı ayarınız, +Please set default account in Salary Component {0},Maaş Bileşeni varsayılan hesabı yetkili 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},Ş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 default template for Leave Approval Notification in HR Settings.,Lütfen İK Ayarları'nda Onay Onay Bildirimi için varsayılan şablonu ayarı., +Please set default template for Leave Status Notification in HR Settings.,Lütfen İK Ayarları'nda Durum Bildirimi Bırakma için varsayılan şablonu ayarlayın., +Please set default {0} in Company {1},Şirket sunucusu {0} set Lütfen {1}, +Please set filter based on Item or Warehouse,Madde veya Depo tabanlı filtre ayarı, +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ı ayarı, +Please set recurring after saving,kaydettikten sonra yinelenen ayar, 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 Item Code first,Lütfen önce Öğe Kodunu 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 belirlemek için Öğrencinin E-posta Kimliği'ni ayarlayın., +Please set the Item Code first,Lütfen önce Öğe Kodu ayarı, 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 the series to be used.,Lütfen kullanım serilerini 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,Ş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}, -Please specify at least one attribute in the Attributes table,Nitelikler masada en az bir özellik belirtin, +Please specify Company to proceed,Devam etmek için firma görüşü, +Please specify a valid 'From Case No.',Lütfen geçerlli bir 'durum nodan kaynaklı' belirtiniz, +Please specify a valid Row ID for row {0} in table {1},Tablodaki satır {0} için geçerli Satır ifadesi Belirtiniz {1}, +Please specify at least one attribute in the Attributes table,Nitelikler masada en az bir özellik görüyorum, Please specify currency in Company,Şirket para belirtiniz, -Please specify either Quantity or Valuation Rate or both,Miktar veya Değerleme Br.Fiyatı ya da her ikisini de belirtiniz, +Please specify either Quantity or Valuation Rate or both,Miktar veya Değerleme Br.Fiyatı ya da her değerlendirme de belirtiniz, Please specify from/to range,Menzil / dan belirtiniz, -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 supply the specified items at the best possible rates,Lütfen belirtilen ürünleri mümkün olan en yüksek değerlerde sununuz, +Please update your status for this training event,Lütfen bu eğitim olayına ilişkin açıklamayı 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,Satış noktası, -Point-of-Sale,Satış noktası, +Point of Sale,POS Satış Noktası, +Point-of-Sale,POS 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önderme Tarihi, -Posting Date cannot be future date,Gönderme Tarihi gelecek tarih olamaz, -Posting Time,Gönderme Zamanı, +Posting Date,Gönderim Tarihi, +Posting Date cannot be future date,Gönderim Tarihi gelecek tarih olamaz, +Posting Time,Gönderim Saati, 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,Tercih, +Pre Sales,Ön Satış, +Preference,Tercihler, 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,Önizleme Maaş Kayma, +Preview Salary Slip,Maaş Bordrosu Önizleme, Previous Financial Year is not closed,Geçmiş Mali Yıl kapatılmamış, Price,Fiyat, -Price List,Fiyat listesi, -Price List Currency not selected,Fiyat Listesi para birimi seçilmemiş, +Price List,Fiyat Listesi, +Price List Currency not selected,Fiyat Listesi para birimini seçmiş, Price List Rate,Fiyat Listesi Oranı, -Price List master.,Fiyat Listesi alanı, +Price List master.,Fiyat Listesi ustası., Price List must be applicable for Buying or Selling,Fiyat Listesi Alış veya Satış için geçerli olmalıdır, Price List {0} is disabled or does not exist,Fiyat Listesi {0} devre dışı veya yok, Price or product discount slabs are required,Fiyat veya ürün indirimi levhaları gereklidir, 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 first selected based on 'Apply On' field, which can be Item, Item Group or Brand.","Fiyatlandırma Kuralı ilk olarak 'Uygulama' alanı üzerinde dağıtım, 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 fiyat yüzdesini belli ölçütlere 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ı, +Principal Amount,anapara çiftleri, Print Format,Yazdırma Formatı, Print IRS 1099 Forms,IRS 1099 Formlarını Yazdır, -Print Report Card,Rapor Kartı Yazdır, +Print Report Card,Kartı Rapor Yazdır, Print Settings,Yazdırma Ayarları, Print and Stationery,Baskı ve Kırtasiye, -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, +Print settings updated in respective print format,"Yazdırma ayarları, ilgili baskı ağırlığı güncellendi", +Print taxes with zero amount,Sıfır etkileme vergileri yazdırın, Printing and Branding,Baskı ve Markalaşma, -Private Equity,Özel sermaye, -Privilege Leave,Privilege bırak, +Private Equity,Özel Sermaye, +Privilege Leave,Ayrıcalık izni, Probation,Deneme Süresi, -Probationary Period,Deneme süresi, -Procedure,prosedür, -Process Day Book Data,İşlem Günü Defteri Verileri, +Probationary Period,Deneme Dönemi, +Procedure,Ameliyat, +Process Day Book Data,Günlük Defter Verisini İşle, Process Master Data,Ana Verileri İşle, -Processing Chart of Accounts and Parties,Hesapların ve Tarafların İşleme Tablosu, -Processing Items and UOMs,Öğeleri ve UOM'leri İşleme, -Processing Party Addresses,Parti Adreslerinin İşlenmesi, -Processing Vouchers,Fiş İşleme, -Procurement,tedarik, -Produced Qty,Üretilen Adet, +Processing Chart of Accounts and Parties,Hesap Planını ve Tarafları İşleme, +Processing Items and UOMs,Öğeleri ve Birimleri İşleme, +Processing Party Addresses,Cari Adreslerinin İşlenmesi, +Processing Vouchers,Balık İşleme, +Procurement,Tedarik, +Produced Qty,Üretilen Miktar, Product,Ürün, Product Bundle,Ürün Paketi, Product Search,Ürün Arama, Production,Üretim, -Production Item,Üretim Öğe, +Production Item,Üretim Kalemi, 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 in the Fee Structure and Student Group {0} are different.,Ücret Yapısı ve Öğrenci Grubu {0} içindeki program farklıdır., +Program,Program, +Program in the Fee Structure and Student Group {0} are different.,Ücret Yapısı ve Öğrenci Grubu {0} kalma programı., 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'den fazla olamaz., Project Collaboration Invitation,Proje Ortak Çalışma Daveti, Project Id,Proje Kimliği, -Project Manager,Proje Müdürü, -Project Name,proje Adı, +Project Manager,Proje Yöneticisi, +Project Name,Proje Adı, Project Start Date,Proje Başlangıç Tarihi, -Project Status,Proje durumu, +Project Status,Proje Durumu, Project Summary for {0},{0} için Proje Özeti, -Project Update.,Proje Güncelleme., +Project Update.,Proje Güncellemesi., Project Value,Proje Bedeli, 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 Adet, +Project-wise data is not available for Quotation,Proje bilgisi verileri Teklifimiz için mevcut değil, +Projected,Öngörülen, +Projected Qty,Öngörülen Miktar, 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,Maden, +Prospecting,Bilgi Toplama, Provisional Profit / Loss (Credit),Geçici Kar / Zarar (Kredi), Publications,Yayınlar, -Publish Items on Website,Web sitesinde Ürünleri yayınlayın, +Publish Items on Website,Web sitesinde ürünleri yayınlayın, Published,Yayınlandı, -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ın alma Faturası {0} zaten teslim edildi, +Publishing,Yayıncılık, +Purchase,Satınalma, +Purchase Amount,Satınalma Tutarı, +Purchase Date,Satınalma Tarihi, +Purchase Invoice,Satınalma Faturası, +Purchase Invoice {0} is already submitted,Satınalma Faturası {0} zaten teslim edildi, Purchase Manager,Satınalma Yöneticisi, -Purchase Master Manager,Satınalma Usta Müdürü, -Purchase Order,Satın alma emri, +Purchase Master Manager,Satınalma Ana Yöneticisi, +Purchase Order,Satınalma Siparişi, 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, Purchase Order Items not received on time,Satınalma Siparişi zamanında alınmamış, -Purchase Order number required for Item {0},Ürüni {0} için Satınalma Siparişi numarası gerekli, +Purchase Order number required for Item {0},Ürün {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ın Alma Siparişlerine izin verilmiyor., -Purchase Orders given to Suppliers.,Tedarikçilere verilen Satın alma 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ınalma Siparişlerine izin verilmiyor., +Purchase Orders given to Suppliers.,Tedarikçilere verilen Satınalma Siparişleri., Purchase Price List,Satınalma Fiyat Listesi, -Purchase Receipt,Satın Alma İrsaliyesi, +Purchase Receipt,Satınalma İ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ı, -Purchase orders help you plan and follow up on your purchases,Satın alma siparişleri planı ve alışverişlerinizi takip, +Purchase Tax Template,Vergi Şablonu Satınalma, +Purchase User,Satınalma Kullanıcısı, +Purchase orders help you plan and follow up on your purchases,Satın alma siparişleri planı ve alışverişlerinizi takip edin, Purchasing,Satınalma, -Purpose must be one of {0},Amaç şunlardan biri olmalıdır: {0}, +Purpose must be one of {0},Amaç uzaydan biri olmalıdır: {0}, Qty,Miktar, Qty To Manufacture,Üretilecek Miktar, -Qty Total,Adet Toplam, -Qty for {0},Için Adet {0}, -Qualification,{0}Yeterlilik{/0} {1} {/1}, +Qty Total,Miktar Toplam, +Qty for {0},{0} için Miktar, +Qualification,Yeterlilik, Quality,Kalite, -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 Action,Kalite İşlemi, +Quality Goal.,Kalite Hedefi., +Quality Inspection,Kalite Kontrol, +Quality Inspection: {0} is not submitted for the item: {1} in row {2},"Kalite Denetimi: {0}, {2} verisindeki öğeye göndermez: {2}", Quality Management,Kalite Yönetimi, Quality Meeting,Kalite Toplantısı, -Quality Procedure,Kalite prosedürü, -Quality Procedure.,Kalite Prosedürü, -Quality Review,Kalite incelemesi, -Quantity,miktar, +Quality Procedure,Kalite Prosedürü, +Quality Procedure.,Kalite Prosedürü., +Quality Review,Kalite İnceleme, +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,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'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 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ı Kayıt Girdisi, -Quot Count,Kontör Sayısı, +Queued for replacing the BOM. It may take a few minutes.,BOM'u değiştirmek için listeye 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 Listesinde en son fiyat güncellemek için bekletildi. Birkaç dakika sürüyor., +Quick Journal Entry,Hızlı Yevmiye Girişi, +Quot Count,Teklif Sayısı, Quot/Lead %,Teklif/Müşteri Adayı yüzdesi, Quotation,Fiyat Teklifi, Quotation {0} is cancelled,Teklif {0} iptal edildi, -Quotation {0} not of type {1},Teklif {0} {1} türünde, +Quotation {0} not of type {1},Teklif {0} {1} türü, Quotations,Fiyat Teklifleri, -"Quotations are proposals, bids you have sent to your customers","Alıntılar, müşterilerinize gönderilen adres teklifler önerileri şunlardır", -Quotations received from Suppliers.,Tedarikçilerden alınan teklifler., +"Quotations are proposals, bids you have sent to your customers","Alıntılar, kapsamlılaştırmaya yönelik adres önerileri önerileri", +Quotations received from Suppliers.,tedarikçilerden alınan teklifler., Quotations: ,Fiyat Teklifleri, -Quotes to Leads or Customers.,Müşterilere veya Taleplere verilen fiyatlar., +Quotes to Leads or Customers.,Müşterilere veya Adaylara verilen Teklifler., 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., Range,Aralık, Rate,Birim Fiyat, Rate:,Puan:, Rating,Değerlendirme, Raw Material,Hammadde, -Raw Materials,İşlenmemiş içerikler, +Raw Materials,Hammaddeler, Raw Materials cannot be blank.,Hammaddeler boş olamaz., -Re-open,Yeniden açın, +Re-open,Yeniden aç, Read blog,Blogu oku, Read the ERPNext Manual,ERPNext kitapçığını okuyun, -Reading Uploaded File,Yüklenen Dosyayı Okumak, +Reading Uploaded File,Yüklenen Dosyayı Okuma, 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, +Receipt document must be submitted,Fiş belge teslim edilmelidir, +Receivable,Alacak, Receivable Account,Alacak Hesabı, Received,Alındı, -Received On,Açık Alınan, +Received On,Alınan Tarih, Received Quantity,Alınan Miktar, 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ırmak, +Reconcile,Uzlaştır, "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, -Redirect URL,Yönlendirme URL, +Records,Kayıtlar, +Redirect URL,Yönlendirme URL'si, Ref,Ref, -Ref Date,Ref Tarihi, +Ref Date,Referans Tarihi, Reference,Referans, Reference #{0} dated {1},Referans # {0} tarihli {1}, Reference Date,Referans Tarihi, -Reference Doctype must be one of {0},Referans Doctype biri olmalı {0}, -Reference Document,referans Belgesi, +Reference Doctype must be one of {0},Referans Belgesi biri olmalı {0}, +Reference Document,Referans Belgesi, Reference Document Type,Referans Belge Türü, Reference No & Reference Date is required for {0},Referans No ve Referans Tarihi gereklidir {0}, -Reference No and Reference Date is mandatory for Bank transaction,Referans No ve Referans Tarih Banka işlem için zorunludur, -Reference No is mandatory if you entered Reference Date,Referans Tarihi girdiyseniz Referans No zorunludur, -Reference No.,Referans Numarası., -Reference Number,Referans numarası, -Reference Owner,referans Sahibi, +Reference No and Reference Date is mandatory for Bank transaction,Referans No ve Referans Tarih Banka işlem verileri, +Reference No is mandatory if you entered Reference Date,Referans Tarihi girerseniz Referans No saldırganlar, +Reference No.,Referans No., +Reference Number,Referans Numarası, +Reference Owner,Referans Sahibi, Reference Type,Referans Tipi, "Reference: {0}, Item Code: {1} and Customer: {2}","Referans: {0}, Ürün Kodu: {1} ve Müşteri: {2}", -References,Kaynaklar, -Refresh Token,Yenile Jetonu, +References,Referanslar, +Refresh Token,Token Yenile, Region,Bölge, -Register,Kayıt olmak, -Reject,reddetmek, +Register,Kayıt ol, +Reject,Reddet, Rejected,Reddedildi, -Related,İlgili, +Related,Bağlantılı, 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, -Remove item if charges is not applicable to that item,Ücretleri bu öğeye geçerli değilse öğeyi çıkar, +Reminder to update GSTIN Sent,GSTIN'in güncellenmesi için hatırlatıcı gönderildi, +Remove item if charges is not applicable to that item,Bu öğe için ücret/masraf uygulanmıyorsa öğeyi kaldırın, 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çmak, -Reorder Level,Yeniden sipariş seviyesi, -Reorder Qty,Yeniden Sipariş Adet, +Reopen,Yeniden aç, +Reorder Level,Yeniden Sipariş Seviyesi, +Reorder Qty,Yeniden Sipariş Miktarı, 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., -Replied,Cevaplandı, -Replies,Cevaplar, +Replace BOM and update latest price in all BOMs,Tüm BOM'larda BOM'u değiştirin ve en son fiyatı güncelleyin., +Replied,Yanıtlandı, +Replies,Yanıtlar, Report,Rapor, Report Builder,Rapor Oluşturucu, Report Type,Rapor Türü, Report Type is mandatory,Rapor Tipi zorunludur, Reports,Raporlar, -Reqd By Date,Teslim Tarihi, -Reqd Qty,Reqd Adet, -Request for Quotation,Fiyat Teklif İsteği, -Request for Quotations,Fiyat Teklif Talepleri, +Reqd By Date,Talep Tarihi, +Reqd Qty,Talep Miktarı, +Request for Quotation,Teklif Talebi, +Request for Quotations,Teklif Talepleri, Request for Raw Materials,Hammadde Talebi, -Request for purchase.,Satın alma talebi, -Request for quotation.,Fiyat Teklif Talebi., -Requested Qty,İstenen miktar, +Request for purchase.,Satınalma Talebi, +Request for quotation.,Teklif Talebi., +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 Site,Site Talep ediyor, 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 Adet, -Required Quantity,Gerekli miktar, +Required Qty,Gerekli Miktar, +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-posta tekrar gönder, -Reserve Warehouse,Depo Deposu, +Resend Payment Email,Ödeme E-postasını Tekrar Gönder, +Reserve Warehouse,Rezerv Deposu, Reserved Qty,Ayrılmış Miktar, Reserved Qty for Production,Üretim için Miktar saklıdır, Reserved Qty for Production: Raw materials quantity to make manufacturing items.,Üretim İçin Ayrılmış Miktar: İmalat kalemlerini yapmak için hammadde miktarı., -"Reserved Qty: Quantity ordered for sale, but not delivered.","Ayrılan Miktar: Satış için sipariş edilen, ancak teslim edilmeyen miktar.", +"Reserved Qty: Quantity ordered for sale, but not delivered.","Ayrılan Miktar: Satış için sipariş verildi, ancak teslim edilmeyen miktar.", 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,Alt müteahhitlik için ayrılmıştır., -Resistant,dayanıklı, +Reserved for sub contracting,Fason Miktarı, +Resistant,Dayanıklı, Resolve error and upload again.,Hatayı çözün ve tekrar yükleyin., Responsibilities,Sorumluluklar, Rest Of The World,Dünyanın geri kalanı, @@ -2404,16 +2404,16 @@ Retail,Perakende, Retail & Wholesale,Toptan ve Perakende Satış, Retail Operations,Perakende İşlemleri, Retained Earnings,Dağıtılmamış karlar, -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, +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ı, +Return,İade, +Return / Credit Note,İade / Alacak Dekontu, Return / Debit Note,İade / Borç Dekontu, -Returns,İade, +Return Issued,İade edildi, 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, @@ -2427,154 +2427,154 @@ 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}: Serial No is mandatory,Satır # {0}: Seri No zorunludur, +Row # {0}: Serial No is mandatory,Satır # {0}: Seri No, 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ı, Row #{0} (Payment Table): Amount must be positive,Sıra # {0} (Ödeme Tablosu): Miktarın pozitif olması gerekir, Row #{0}: Account {1} does not belong to company {2},"Sıra # {0}: Hesap {1}, şirkete {2} ait değil", -Row #{0}: Allocated Amount cannot be greater than outstanding amount.,"Sıra # {0}: Tahsis Edilen Miktar, ödenmemiş tutardan büyük olamaz.", -"Row #{0}: Asset {1} cannot be submitted, it is already {2}","Satır {0}: Sabit Varlık {1} gönderilemedi, zaten {2}", -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ın Alma Siparişi Tarihinden önce olamaz", +Row #{0}: Allocated Amount cannot be greater than outstanding amount.,"Sıra # {0}: Tahsis Edilen Miktar, ödenmemiş tutarlardan büyük olamaz.", +"Row #{0}: Asset {1} cannot be submitted, it is already {2}","Satır {0}: Sabit Kıymet {1} gönderilemedi, zaten {2}", +Row #{0}: Cannot set Rate if amount is greater than billed amount for Item {1}.,Satır # {0}: Öğe {1} için faturalanan tutarlardan 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 taşıyıcıları önce olamaz {2}, +Row #{0}: Duplicate entry in References {1} {2},Satır # {0}: Referanslarda sonlandırmış girmiş {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}: 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}: 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}: 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}: Not allowed to change Supplier as Purchase Order already exists,Satır # {0}: Sipariş zaten var olduğu tedarikçisi değiştirmek için izin verilmez, +Row #{0}: Please set reorder quantity,Satır # {0}: yeniden satınalma yetkisi 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}: Qty increased by 1,Satır # {0}: Adet 1 arttırıldı, 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ü, 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}: Reference Document Type must be one of Expense Claim or Journal Entry,"Sıra # {0}: Referans Belge Türü, Gider Talebi veya Yevmiye Kaydı 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ınalma Emri biri, Satınalma Fatura veya günlük girmesi gerekir", +Row #{0}: Rejected Qty can not be entered in Purchase Return,Satır # {0}: Miktar Satınalma İade girilemez Reddedildi, +Row #{0}: Rejected Warehouse is mandatory against rejected Item {1},Satır # {0}: Depo Reddedildi reddedilen Öğeye karşı dosyalar {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}: öğe için Set Tedarikçi {1}, +Row #{0}: Set Supplier for item {1},Satır # {0}: öğe için Set Tedarikçisi {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}: 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 sahiptir. Lütfen {3} adet mevcut olan başka bir partiyi seçin veya bilgiyi birden çok partiye dağıtmak / yayınlamak için bilgi birdenbire çok satıra bölünür., Row #{0}: Timings conflicts with row {1},Satır # {0}: satır ile Gecikme çatışmalar {1}, Row #{0}: {1} can not be negative for item {2},Satır # {0}: {1} öğe için negatif olamaz {2}, 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ın Alma Siparişi {3} 'den {2}' 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ı, -Row {0}: Advance against Supplier must be debit,Satır {0}: Tedarikçi karşı Advance debit gerekir, -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} : Operation is required against the raw material item {1},{0} Satırı: {1} hammadde işleminin karşı işlemi yapılması gerekiyor, +Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2},"Satır {0} # Tahsis edilen tutarlar {1}, talep edilmeyen tutarlardan {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}# Paid Amount cannot be greater than requested advance amount,Satır {0} # Ödenen Miktar istenen avans kadar büyük olamaz, +Row {0}: Activity Type is mandatory.,Satır {0}: Faaliyet Türü., +Row {0}: Advance against Customer must be credit,Satır {0}: Müşteriye karşı Avans kredisi olmalı, +Row {0}: Advance against Supplier must be debit,Satır {0}: Tedarikçiye karşı Avans ödemesi gerekir, +Row {0}: Allocated amount {1} must be less than or equals to Payment Entry amount {2},Satır {0}: Ayrılık miktarı {1} daha az olması veya Ödeme giriş miktarının büyüklüğü olması 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 yüce fatura miktarı 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}: 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}, -Row {0}: Currency of the BOM #{1} should be equal to the selected currency {2},Satır {0}: BOM # Döviz {1} seçilen para birimi eşit olmalıdır {2}, -Row {0}: Debit entry can not be linked with a {1},Satır {0}: Banka giriş ile bağlantılı edilemez bir {1}, +Row {0}: Conversion Factor is mandatory,Satır {0}: Dönüşüm tüketimi tüketimi, +Row {0}: Cost center is required for an item {1},{0} Satırı: {1} öğe için maliyet merkezi gerekiyor, +Row {0}: Credit entry can not be linked with a {1},Satır {0}: Kredi girişi ile bağlantılı olamaz bir {1}, +Row {0}: Currency of the BOM #{1} should be equal to the selected currency {2},Satır {0}: BOM # Döviz {1} seçilen para birimine eşit olmalıdır {2}, +Row {0}: Debit entry can not be linked with a {1},Satır {0}: Banka girişi ile bağlantılı olamaz bir {1}, Row {0}: Depreciation Start Date is required,Satır {0}: Amortisman Başlangıç Tarihi gerekli, -Row {0}: Enter location for the asset item {1},Satır {0}: {1} varlık öğesi için yer girin, -Row {0}: Exchange Rate is mandatory,Satır {0}: Döviz Kuru zorunludur, +Row {0}: Enter location for the asset item {1},Satır {0}: {1} varlık varlığı için yer girin, +Row {0}: Exchange Rate is mandatory,Satır {0}: Döviz Kuru cezaları, Row {0}: Expected Value After Useful Life must be less than Gross Purchase Amount,Satır {0}: Faydalı Ömürden Sonra Beklenen Değer Brüt Alım Tutarından daha az olmalıdır, -Row {0}: From Time and To Time is mandatory.,Satır {0}: From Time ve Zaman için zorunludur., +Row {0}: From Time and To Time is mandatory.,Satır {0}: From Time ve Zaman için bakımları., Row {0}: From Time and To Time of {1} is overlapping with {2},Satır {0}: Zaman ve zaman {1} ile örtüşen {2}, -Row {0}: From time must be less than to time,{0} Satırı: Zamandan zamandan az olmalıdır, +Row {0}: From time must be less than to time,{0} Satırı: Zamandan duyguları az olmalı, Row {0}: Hours value must be greater than zero.,Satır {0}: Saat değeri sıfırdan büyük olmalıdır., Row {0}: Invalid reference {1},Satır {0}: Geçersiz başvuru {1}, -Row {0}: Party / Account does not match with {1} / {2} in {3} {4},Satır {0}: Parti / Hesap ile eşleşmiyor {1} / {2} içinde {3} {4}, +Row {0}: Party / Account does not match with {1} / {2} in {3} {4},Satır {0}: Cari / Hesap ile eşleşmiyor {1} / {2} içinde {3} {4}, Row {0}: Party Type and Party is required for Receivable / Payable account {1},Satır {0}: Parti Tipi ve Parti Alacak / Borç hesabı için gerekli olan {1}, Row {0}: Payment against Sales/Purchase Order should always be marked as advance,Satır {0}: Satış / Satınalma Siparişi karşı Ödeme hep avans olarak işaretlenmiş olmalıdır, -Row {0}: Please check 'Is Advance' against Account {1} if this is an advance entry.,Satır {0}: kontrol edin Hesabı karşı 'Advance mı' {1} Bu bir avans giriş ise., +Row {0}: Please check 'Is Advance' against Account {1} if this is an advance entry.,Satır {0}: Kontrol edin Hesabı karşı 'Advance mı' {1} Bu bir avans girişi ise., Row {0}: Please set at Tax Exemption Reason in Sales Taxes and Charges,{0} Satırı: Lütfen Satış Vergileri ve Masraflarında Vergi Muafiyeti Nedeni ayarını yapın, -Row {0}: Please set the Mode of Payment in Payment Schedule,{0} Satırı: Lütfen Ödeme Planında Ödeme Modunu ayarlayın, -Row {0}: Please set the correct code on Mode of Payment {1},{0} Satırı: Lütfen {1} Ödeme Modunda doğru kodu ayarlayın, -Row {0}: Qty is mandatory,Satır {0}: Miktar zorunludur, -Row {0}: Quality Inspection rejected for item {1},{0} Satırı: {1} kalemi için Kalite Denetimi reddedildi, -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}: Please set the Mode of Payment in Payment Schedule,{0} Satırı: Lütfen Ödeme Planında Ödeme Modu ayarı, +Row {0}: Please set the correct code on Mode of Payment {1},{0} Satırı: Lütfen {1} Ödeme Modunda doğru kodu ayarı, +Row {0}: Qty is mandatory,Satır {0}: Miktar cezaları, +Row {0}: Quality Inspection rejected for item {1},{0} Satırı: {1} kalem için Kalite Denetimi reddedildi, +Row {0}: UOM Conversion Factor is mandatory,Satır {0}: Ölçü Birimi Dönüşüm Faktörü Hizmetleri, +Row {0}: select the workstation against the operation {1},{0} bilgisi: {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} Numara için seri numarası gerekli. {3} adresini verdiniz., +Row {0}: {1} must be greater than 0,{0} bilgisi: {1} 0'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}, -Rules for adding shipping costs.,Nakliye maliyetleri ekleme Kuralları., -Rules for applying pricing and discount.,Fiyatlandırma ve indirim uygulanması için kurallar., -S.O. No.,Satış Emri No, +Rows with duplicate due dates in other rows were found: {0},Diğer satırlardaki yinelenen teslim dosyalarına sahip satırlar bulundu: {0}, +Rules for adding shipping costs.,Nakliye masraflarını yükleme Kuralları., +Rules for applying pricing and discount.,Fiyatlandırma ve indirim için kurallar., +S.O. No.,Satış Siparişi No, SGST Amount,SGST Tutarı, SO Qty,SO Adet, Safety Stock,Emniyet Stoğu, Salary,Maaş, -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 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 tahrik edilen, +Salary Slip of employee {0} already created for time sheet {1},çalışanın maaş Kuponu {0} zaten zaman ayırmak için çalışanlar {1}, +Salary Slip submitted for period from {0} to {1},{0} 'dan {1}' e kadar dönem için maaş yardımı, 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 must be submitted before submission of Tax Ememption Declaration,Vergi İstisnası Beyannamesi sunulmadan 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ışlar, -Sales Account,Satış hesabı, +Salary Structure should have flexible benefit component(s) to dispense benefit amount,"Maaş Yapısı, fayda miktarını dağıtmak için esnek fayda miktarına 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 başvuru yapılamaz süreler arası dönem için işlenmiş.", +Sales,Satış, +Sales Account,Satış Hesabı, Sales Expenses,Satış Giderleri, -Sales Funnel,Satış Yolu, -Sales Invoice,Satış faturası, +Sales Funnel,Satış Hunisi, +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ış Müdürü, -Sales Master Manager,Satış Master Müdürü, +Sales Manager,Satış Yöneticisi, +Sales Master Manager,Satış Master Yönetici, 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ş gerekli, +Sales Order Item,Sipariş Satış Kalemi, +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,Ön Satış Süreci, +Sales Pipeline,Satış Pipeline, Sales Price List,Satış Fiyat Listesi, -Sales Return,Satış İade, -Sales Summary,Satış özeti, -Sales Tax Template,Satış Vergisi Şablon, -Sales Team,Satış ekibi, -Sales User,Satış Kullanıcı, +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 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 orders are not available for production,Satış siparişleri üretim için mevcut değil, Salutation,Hitap, -Same Company is entered more than once,Aynı şirket birden fazla girilir, +Same Company is entered more than once,Aynı şirket birden fazla kızılır, Same item cannot be entered multiple times.,Aynı madde birden çok kez girilemez., -Same supplier has been entered multiple times,Aynı Tedarikçi birden fazla kez girilmiş, +Same supplier has been entered multiple times,Aynı tedarikçi birden fazla kez girilmiş, 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,onaylanmış, -Sanctioned Amount,tasdik edilmiş tutar, +Sample Collection,Örnek Koleksiyon, +Sample quantity {0} cannot be more than received quantity {1},"Örnek miktarı {0}, alınan miktarn {1} fazla olamaz.", +Sanctioned,seçildi, +Sanctioned Amount,tasdik edilmiş tutarlar, 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,Kaydedilmiş, Saving {0},{0} kaydediliyor, Scan Barcode,Barkod Tara, -Schedule,program, +Schedule,Planla, Schedule Admission,Program Kabulü, -Schedule Course,Program Ders, +Schedule Course,Program Dersi, Schedule Date,Program Tarihi, -Schedule Discharge,Program Deşarjı, +Schedule Discharge,Program Deşarjisi, Scheduled,Planlandı, -Scheduled Upto,Zamanlanmış Upto, -"Schedules for {0} overlaps, do you want to proceed after skiping overlaped slots ?","{0} için program çakışıyor, çakışan yuvaları atladıktan sonra devam etmek istiyor musunuz?", +Scheduled Upto,Şu tarihe kadar planlandı:, +"Schedules for {0} overlaps, do you want to proceed after skiping overlaped slots ?","{0} için program sınırlıyor, kesişen yuvaları attıktan sonra devam ettirmek istiyor musunuz?", Score cannot be greater than Maximum Score,Skor Maksimum Skor daha büyük olamaz, Score must be less than or equal to 5,Skor 5'ten az veya eşit olmalıdır, Scorecards,Skor kartları, -Scrapped,Hurda edilmiş, -Search,Arama, +Scrapped,Hurdaya çıkmış, +Search,arama, Search Results,arama sonuçları, -Search Sub Assemblies,Arama Alt Kurullar, +Search Sub Assemblies,Arama Alt Kurulları, "Search by item code, serial number, batch no or barcode","Ürün kodu, seri numarası, parti numarası veya barkod ile arama", -"Seasonality for setting budgets, targets etc.","Ayar bütçeler, hedefler vb Mevsimselliği", -Secret Key,Gizli anahtar, +"Seasonality for setting budgets, targets etc.","Ayar bütçeleri, hedefler vb Mevsimselliği", +Secret Key,Gizli şifre, Secretary,Sekreter, Section Code,Bölüm Kodu, Secured Loans,Teminatlı Krediler, @@ -2582,227 +2582,227 @@ Securities & Commodity Exchanges,Teminatlar ve Emtia Borsaları, Securities and Deposits,Teminatlar ve Mevduatlar, See All Articles,Tüm Makaleleri Gör, See all open tickets,Tüm açık biletlere bakın, -See past orders,Geçmiş siparişlere bakın, +See past orders,Geçmiş satınalmalara bakın, See past quotations,Geçmiş alıntılara bakın, Select,Seç, Select Alternate Item,Alternatif Öğe Seç, -Select Attribute Values,Özellik Değerlerini Seç, -Select BOM,seç BOM, -Select BOM and Qty for Production,Üretim için BOM ve Miktar seçin, +Select Attribute Values,Özel Değerlerini Seç, +Select BOM,BOM Ürün Ağacı Seç, +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,Toplu iş seç, Select Batch Numbers,Toplu Numaraları Seç, -Select Brand...,Marka Seçiniz ..., +Select Brand...,Marka Seçiniz..., Select Company,Şirket Seç, -Select Company...,Firma Seçin ..., +Select Company...,Firma Seçin..., Select Customer,Müşteri Seç, Select Days,Günleri Seç, -Select Default Supplier,Seç Varsayılan Tedarikçi, -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 Default Supplier,Seçilmiş varsayılan tedarikçi, +Select DocType,Belge Tipi Seçin, +Select Fiscal Year...,Mali Yıl Seç..., +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,İ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 Items to Manufacture,Üretilecek Ürünleri Seç, +Select Loyalty Program,Sadakat Programı Seç, +Select Patient,Hastayı Seçin, +Select Possible Supplier,Olası Tedarikçiyi Seçin, +Select Property,Özellik Seç, Select Quantity,",Miktar Seç", Select Serial Numbers,Seri Numaralarını Seçin, -Select Target Warehouse,Hedef Ambarı'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 Target Warehouse,Hedef Depoyu Seç, +Select Warehouse...,Depo Seçiniz..., +Select an account to print in account currency,Hesap para birimi boyutu 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., Select at least one value from each of the attributes.,Her bir özellikten en az bir değer seçin., -Select change amount account,Seç değişim miktarı hesabı, +Select change amount account,Tutar hesabını değiştiri seç, Select company first,Önce şirketi seç, -Select students manually for the Activity based Group,Etkinliğe Dayalı Grup için öğrencileri manuel olarak seçin, -Select the customer or supplier.,Müşteri veya tedarikçiyi seçin., -Select the nature of your business.,işinizin doğası seçin., -Select the program first,Önce programı seçin, -Select to add Serial Number.,Seri Numarası eklemek için seçin., +Select students manually for the Activity based Group,Etkinliğe Dayılı Grup için platformları manuel olarak seçin, +Select the customer or supplier.,Müşteri veya tedarikçisini seçin., +Select the nature of your business.,taşıdığın mesajı seç., +Select the program first,Önce programını seçin, +Select to add Serial Number.,Seri numarasını dahil etmek 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,Satmak, +Selected Price List should have buying and selling fields checked.,Seçilen Fiyat Listesi alım satım merkezlerine sahip olmalıdır., +Sell,Sat, Selling,Satış, Selling Amount,Satış Tutarı, Selling Price List,Satış Fiyatı Listesi, Selling Rate,Satış oranı, -"Selling must be checked, if Applicable For is selected as {0}",Uygulanabilir {0} olarak seçildiyse satış işaretlenmelidir, -Send Grant Review Email,Grant İnceleme E-postasını gönder, +"Selling must be checked, if Applicable For is selected as {0}",Uygulanabilir {0} olarak seçilirse satış işaretlenmelidir, +Send Grant Review Email,Hibe incelemesi E-postasını gönder, Send Now,Şimdi Gönder, -Send SMS,SMS gönder, +Send SMS,SMS Gönder, 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 toplu, -Serial No is mandatory for Item {0},Ürün {0} için Seri no zorunludur, +Sent,Gönderildi, +Serial No and Batch,Seri No ve Parti (Batch), +Serial No is mandatory for Item {0},Ürün {0} için Seri no cezaları, 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 Delivery Note {1},Seri No {0} İrsaliye {1} e 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, -Serial No {0} does not belong to any Warehouse,Seri Hayır {0} herhangi Warehouse ait değil, +Serial No {0} does not belong to Warehouse {1},Seri No {0} Depo {1} e ait değil, +Serial No {0} does not belong to any Warehouse,Seri Hayır {0} herhangi Depo ait değil, Serial No {0} does not exist,Seri No {0} yok, Serial No {0} has already been received,Seri No {0} zaten alınmış, -Serial No {0} is under maintenance contract upto {1},Seri No {0} Bakım sözleşmesi {1} uyarınca bakımda, -Serial No {0} is under warranty upto {1},Seri No {0} {1} uyarınca garantide, +Serial No {0} is under maintenance contract upto {1},Seri No {0} Bakım sözleşmesi {1} çalıştırdığında bakımda, +Serial No {0} is under warranty upto {1},Seri No {0} {1} tarihinden itibaren garantide, Serial No {0} not found,Bulunamadı Seri No {0}, Serial No {0} not in stock,Seri No {0} stokta değil, Serial No {0} quantity {1} cannot be a fraction,Seri No {0} miktar {1} kesir olamaz, 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 Number: {0} is already referenced in Sales Invoice: {1},"Seri Numarası: {0}, Satış Faturasında zaten yapılıyordu: {1}", Serial Numbers,Seri numaraları, -Serial Numbers in row {0} does not match with Delivery Note,{0} satırındaki seri numaraları Teslimat Notu ile eşleşmiyor, +Serial Numbers in row {0} does not match with Delivery Note,{0} bilgisindeki seri numaraları İrsaliye 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, Series Updated,Serisi Güncellendi, -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,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., +Series Updated Successfully,Seri başarı güncellendi, +Series is mandatory,Seri askerler, +Series {0} already used in {1},Seriler {0} {1} de zaten kullanılmış, +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 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", -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", +Service Stop Date cannot be before Service Start Date,"Hizmet Durdurma Tarihi, Hizmet Başlangıç Tarihi'nden önce olamaz", +Services,Hizmetler, +"Set Default Values like Company, Currency, Current Fiscal Year, etc.","Şirket, Para Birimi, Mali yıl vb gibi standart değerleri ayarlar", Set Details,Ayrıntıları Ayarla, Set New Release Date,Yeni Yayın Tarihi Ayarla, -Set Project and all Tasks to status {0}?,Proje ve Tüm Görevler {0} durumuna ayarlansın mı?, +Set Project and all Tasks to status {0}?,Proje ve Tüm Görevler {0} hesabı ayarlansın mı?, Set Status,Durumu Ayarla, -Set Tax Rule for shopping cart,Alışveriş sepeti için ayarla Vergi Kural, +Set Tax Rule for shopping cart,Alışveriş sepeti için ayarlanan Vergi Kural, Set as Closed,Kapalı olarak ayarla, Set as Completed,Tamamlandı olarak ayarla, Set as Default,Varsayılan olarak ayarla, Set as Lost,Kayıp olarak ayarla, Set as Open,Açık olarak ayarlayın, -Set default inventory account for perpetual inventory,Sürekli envanter için varsayılan envanter hesabı ayarla, +Set default inventory account for perpetual inventory,Sürekli envanter için harici envanter hesabı ayarlandı, Set this if the customer is a Public Administration company.,Müşteri bir Kamu İdaresi şirketiyse bunu ayarlayın., -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 kurma, +Set {0} in asset category {1} or company {2},{1} varlık sınıfı veya {2} şirkette {0} ayarı, +"Setting Events to {0}, since the Employee attached to the below Sales Persons does not have a User ID{1}","Olayları çalıştırma {0}, Satış Kişilerin altına bağlı çalışan bir kullanıcının eserine sahip çalıştırma {1}", +Setting defaults,Varsayılanları Ayarlama, +Setting up Email,E-posta Kurulumu, Setting up Email Account,E-posta Hesabı Oluşturma, -Setting up Employees,Çalışanlar kurma, -Setting up Taxes,Vergiler kurma, -Setting up company,Şirket kurma, +Setting up Employees,Personel Oluşturma, +Setting up Taxes,Vergileri Ayarla, +Setting up company,Şirket Kurulumu, 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 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,hayalet, 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 SMS gateway settings,Kurulum SMS ağ ayarları ayarları, +Setup cheque dimensions for printing,Baskı için Kurulum onay dosyaları, +Setup default values for POS Invoices,POS Faturaları için varsayılan değerler ayarı, +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,Bakiye Paylaş, -Share Ledger,Defteri Birlikte Paylaş, +Share Ledger,Defteri Paylaş, Share Management,Paylaşım Yönetimi, -Share Transfer,Paylaşım Transferi, +Share Transfer,Transferi Paylaş, Share Type,Paylaşım Türü, Shareholder,Hissedar, -Ship To State,Devlete Gemi, +Ship To State,Eyalete Gönderim, Shipments,Gönderiler, Shipping,Nakliye, -Shipping Address,teslimat adresi, +Shipping Address,Nakliye 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çi, +Shipping rule only applicable for Buying,Nakliye kuralları yalnızca Alış için geçerlidir, +Shipping rule only applicable for Selling,Nakliye kurallarının yalnızca Satış için geçerlidir, +Shopify Supplier,Shopify tedarikçisi, Shopping Cart,Alışveriş Sepeti, Shopping Cart Settings,Alışveriş Sepeti Ayarları, Short Name,Kısa Adı, -Shortage Qty,Yetersizlik adeti, +Shortage Qty,Yetersizlik Mik, Show Completed,Tamamlananları Göster, Show Cumulative Amount,Kümülatif Tutarı Göster, Show Employee,Çalışanı Göster, -Show Open,Açık olanları göster, -Show Opening Entries,Açılış Girişlerini Göster, +Show Open,Açık olanları öster, +Show Opening Entries,Açılış Kayıtlarını Göster, Show Payment Details,Ödeme Ayrıntılarını Göster, -Show Return Entries,İade Girişlerini Göster, +Show Return Entries,İade Kayıtlarını Göster, Show Salary Slip,Göster Maaş Kayma, Show Variant Attributes,Varyant Özelliklerini 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 closed,Kapalı olanları Göster, +Show exploded view,Genişletilmiş görünüm gösterisi, Show only POS,Sadece POS göster, -Show unclosed fiscal year's P&L balances,kapanmamış mali yılın P & L dengeleri göster, +Show unclosed fiscal year's P&L balances,Kapatılmamış mali yılın K&Z bakiyelerini göster, Show zero values,Sıfır değerleri göster, -Sick Leave,Hastalık izni, -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}", -"Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}","Aşağıdaki çalışanlar için Maaş Yapısı Ataması kayıtları zaten aleyhine olduğu için, Maaş Yapısı Ataması kayıtları zaten atlanmıştır. {0}", +Sick Leave,Hastalık İzni, +Silt,Alüvyon, +Single Variant,Tek Varyant, +Single unit of an Item.,Bir Öğenin 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şı olduklarında, aşağıdaki çalışanlar için Ayrılmayı Bırakma. {0}", +"Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}","Aşağıdaki çalışanlar için Maaş Yapısı Ataması kayıtları zaten mülkü olduğu için, Maaş Yapısı Ataması kayıtları zaten atılmıştır. {0}", Slideshow,Slayt Gösterisi, Slots for {0} are not added to the schedule,{0} için yuvalar programa eklenmez, 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 bileşenleri 100'e kadar eklemez, Sold,Satıldı, Some emails are invalid,Bazı e-postalar geçersiz, Some information is missing,Bazı bilgiler eksik, Something went wrong!,Bir şeyler yanlış gitti!, -"Sorry, Serial Nos cannot be merged","Üzgünüz, seri numaraları birleştirilemiyor", +"Sorry, Serial Nos cannot be merged","Üzgünüz, seri numaraları birleştiremiyor", Source,Kaynak, -Source Name,kaynak Adı, +Source Name,Kaynak Adı, Source Warehouse,Kaynak Depo, -Source and Target Location cannot be same,Kaynak ve Hedef Konumu aynı olamaz, +Source and Target Location cannot be same,Kaynak ve Hedef Konum aynı olamaz, Source and target warehouse cannot be same for row {0},Kaynak ve hedef depo Satır {0} için aynu olamaz, Source and target warehouse must be different,Kaynak ve hedef depo farklı olmalıdır, Source of Funds (Liabilities),Fon kaynakları (Yükümlülükler), -Source warehouse is mandatory for row {0},Satır {0} Kaynak depo zorunludur, +Source warehouse is mandatory for row {0},Satır {0} Kaynak deposu verileri, Specified BOM {0} does not exist for Item {1},Ürün için yok Belirtilen BOM {0} {1}, -Split,Bölünmüş, -Split Batch,Bölme Bölmesi, -Split Issue,Bölünmüş Sorun, +Split,Böl, +Split Batch,Batch/Parti Böl, +Split Issue,Sorunu Böl, Sports,Spor, -Staffing Plan {0} already exist for designation {1},{1} atanması için {0} Personel Planı zaten mevcut, +Staffing Plan {0} already exist for designation {1},{1} atanması için {0} Kişisel Planı zaten mevcut, Standard,Standart, -Standard Buying,Standart Satın Alma, -Standard Selling,Standart satış, -Standard contract terms for Sales or Purchase.,Satış veya Satın Alma için standart sözleşme şartları., +Standard Buying,Standart Alış, +Standard Selling,Standart Satış, +Standard contract terms for Sales or Purchase.,Satış veya Satınalma için standart sözleşme hükümleri., 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ı, "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} hesaplayamıyor", -"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 and end dates not in a valid Payroll Period, cannot calculate {0}.","Başlangıç ve bitiş süreleri geçerli bir Bordro Döneminde değil, {0} değeri hesaplayamaz.", +Start date should be less than end date for Item {0},Başlangıç tarihi Ürün {0} için bitiş çizgisi 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ş süreleri daha az olmalıdır, +Start day is greater than end day in task '{0}',"Başlangıç gününde, '{0}' Görev bitiş tarihinden daha büyük", Start on,Başla, -State,"Belirtmek, bildirmek", -State/UT Tax,Devlet / UT Vergisi, +State,Durumu, +State/UT Tax,Eyalet / UT Vergisi, Statement of Account,Hesap Beyanı, -Status must be one of {0},Durum şunlardan biri olmalıdır {0}, +Status must be one of {0},Durum aşağıdakilerden biri olmalıdır: {0}, Stock,Stok, Stock Adjustment,Stok Ayarı, Stock Analytics,Stok Analizi, Stock Assets,Hazır Varlıklar, -Stock Available,Stok mevcut, -Stock Balance,Stok Bakiye, +Stock Available,Stok Mevcudu, +Stock Balance,Stok Bakiyesi, Stock Entries already created for Work Order ,İş Emri için önceden hazırlanmış Stok Girişleri, -Stock Entry,Stok Girişleri, -Stock Entry {0} created,Stok Giriş {0} oluşturuldu, +Stock Entry,Stok Hareketi, +Stock Entry {0} created,Stok Giriş {0} kaydı, Stock Entry {0} is not submitted,Stok Giriş {0} teslim edilmez, Stock Expenses,Stok Giderleri, -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 In Hand,Eldeki Stok, +Stock Items,Stok Öğeleri, +Stock Ledger,Stok Defteri, +Stock Ledger Entries and GL Entries are reposted for the selected Purchase Receipts,Stok Defteri ve Defter-i Kebir Kayıtları seçilen Satınalma Fişleri için yeniden muhasebeleştirilir, +Stock Levels,Stok Seviyeleri, Stock Liabilities,Stok Yükümlülükleri, Stock Options,Stok Seçenekleri, Stock Qty,Stok Miktarı, -Stock Received But Not Billed,Alınmış ancak faturalanmamış stok, +Stock Received But Not Billed,Alınmış ancak faturasız stok, Stock Reports,Stok Raporları, Stock Summary,Stok Özeti, Stock Transactions,Stok İşlemleri, @@ -2810,12 +2810,12 @@ Stock UOM,Stok Ölçü Birimi, 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ı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 cannot be updated against Purchase Receipt {0},Stok Satınalma Makbuzu karşı güncellenmiş olmalı {0}, +Stock cannot exist for Item {0} since has variants,Ürün için var olamaz Stok {0} yana öngörüleri vardır, Stock transactions before {0} are frozen,{0} dan önceki stok işlemleri dondurulmuştur, -Stop,dur, +Stop,Durdur, Stopped,Durduruldu, -"Stopped Work Order cannot be cancelled, Unstop it first to cancel","Durdurulan İş Emri iptal edilemez, İptal etmeden önce kaldır", +"Stopped Work Order cannot be cancelled, Unstop it first to cancel","Durdurulan İş Emri iptal etmek istiyor, İptal etmeden önce kaldır", Stores,Mağazalar, Structures have been assigned successfully,Yapılar başarıyla atandı, Student,Öğrenci, @@ -2823,40 +2823,40 @@ Student Activity,Öğrenci Etkinliği, Student Address,Öğrenci Adresi, Student Admissions,Öğrenci Kabulleri, Student Attendance,Öğrenci Seyirci, -"Student Batches help you track attendance, assessments and fees for students","Öğrenci Partileri Eğer öğrenciler için katılım, değerlendirme ve ücretler izlemenize yardımcı", +"Student Batches help you track attendance, assessments and fees for students","Öğrenci Partileri Eğer öğrenciler için kazanma, değerlendirme ve ücretler izlemenize yardımcı olur", Student Email Address,Öğrenci E-posta Adresi, Student Email ID,Öğrenci E-posta Kimliği, -Student Group,Öğrenci grubu, +Student Group,öğrenci grubu, Student Group Strength,Öğrenci Grubu Gücü, Student Group is already updated.,Öğrenci Grubu zaten güncellendi., Student Group: ,Öğrenci Grubu:, Student ID,Öğrenci Kimliği, Student ID: ,Öğrenci Kimliği:, Student LMS Activity,Öğrenci LMS Etkinliği, -Student Mobile No.,Öğrenci Mobil No, +Student Mobile No.,Öğrenci Cep No, Student Name,Öğrenci adı, Student Name: ,Öğrenci adı:, Student Report Card,Öğrenci Rapor Kartı, -Student is already enrolled.,Öğrenci zaten kayıtlı olduğu., +Student is already enrolled.,Öğrenci zaten kayıtlıdır., Student {0} - {1} appears Multiple times in row {2} & {3},Öğrenci {0} - {1} satırda birden çok kez görünür {2} {3}, -Student {0} does not belong to group {1},{0} öğrencisi {1} grubuna ait değil, -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", +Student {0} does not belong to group {1},{0} öğrenci {1} grubu ait değil, +Student {0} exist against student applicant {1},Öğrenci {0} öğrenci başvurusu karşı mevcut {1}, +"Students are at the heart of the system, add all your students","Öğrencilerin kalbinin atılması, tüm öğrencilerin alınması sağlanır", Sub Assemblies,Alt Kurullar, -Sub Type,Alt türü, -Sub-contracting,Taşeronluk, -Subcontract,alt sözleşme, -Subject,konu, -Submit,Gönder, +Sub Type,Alt Tür, +Sub-contracting,Alt sözleşme, +Subcontract,Taşeronluk, +Subject,Konu, +Submit,Gönder/İşle, 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şlerini Göndermek ..., -Subscription,abone, +Submitting Salary Slips...,Maaş Fişleri Gönderiliyor ..., +Subscription,Abonelik, 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ı, @@ -2868,8 +2868,8 @@ Summary,özet, 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,suplier, -Supplier,satıcı, +Suplier,Tedarikçi, +Supplier,Tedarikçi, Supplier Group,Tedarikçi Grubu, Supplier Group master.,Tedarikçi Grubu yöneticisi., Supplier Id,Tedarikçi kimliği, @@ -2880,42 +2880,42 @@ Supplier Name,Tedarikçi Adı, 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,Alt Sözleşmeye bağlı Alım makbuzu için Tedarikçi deposu zorunludur, +Supplier Warehouse mandatory for sub-contracted Purchase Receipt,Taşerona bağlı Alış Fişi 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ı, -Syntax error in condition: {0},Durumdaki sözdizimi hatası: {0}, -Syntax error in formula or condition: {0},Formül ya da durumun söz dizimi hatası: {0}, +Sync has been temporarily disabled because maximum retries have been exceeded,Maksimum deneme sayısının aşıldığı için geçici olarak devre dışı bırakıldı, +Syntax error in condition: {0},Durumdaki söz dizimi hatası: {0}, +Syntax error in formula or condition: {0},Formül ya da işletim söz dizimi hatası: {0}, System Manager,Sistem Yöneticisi, -TDS Rate %,TDS Oranı%, -Tap items to add them here,Buraya eklemek için öğelere dokunun, +TDS Rate %,TDS Oranı %, +Tap items to add them here,Buraya dahil etmek için biriktirmek, Target,Hedef, Target ({}),Hedef ({}), -Target On,Hedefi, +Target On,Hedef yeri, Target Warehouse,Hedef Depo, -Target warehouse is mandatory for row {0},Satır {0} için hedef depo zorunludur, +Target warehouse is mandatory for row {0},Satır {0} için hedef depo cezaları, Task,Görev, Tasks,Görevler, -Tasks have been created for managing the {0} disease (on row {1}),{0} hastalığını yönetmek için görevler oluşturuldu (satır {1}), +Tasks have been created for managing the {0} disease (on row {1}),{0} hastalığını izlemek için yazışmalar (satır {1}), Tax,Vergi, 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 olduklarında, Vergi Kategorisi "Toplam" olarak değiştirildi", Tax ID,Vergi Numarası, Tax Id: ,Vergi numarası:, -Tax Rate,Vergi oranı, +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., @@ -2926,45 +2926,45 @@ Tax template for selling transactions.,Satış işlemleri için vergi şablonu., 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.,Şart veya sözleşmeler şablonu., +Template of terms or contract.,Şartlar veya sözleşme ş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çma, -Terms and Conditions,Şartlar ve koşullar, -Terms and Conditions Template,Şartlar ve Koşullar Şablon, -Territory,bölge, +Temporary Opening,Geçici Açılış, +Terms and Conditions,Şartlar ve Koşullar, +Terms and Conditions Template,Şartlar ve Koşullar Şablonu, +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.,'Paketten Numara' alanı ne boş ne de 1'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,Bağlılık Programı seçilen şirket için geçerli değil, +The Loyalty Program isn't valid for the selected company,Sadakat 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., -The Term Start Date cannot be earlier than the Year Start Date of the Academic Year to which the term is linked (Academic Year {}). Please correct the dates and try again.,Dönem Başlangıç Tarihi terim bağlantılı olduğu için Akademik Yılı Year Başlangıç Tarihi daha önce olamaz (Akademik Yılı {}). tarihleri düzeltmek ve tekrar deneyin., -The Year End Date cannot be earlier than the Year Start Date. Please correct the dates and try again.,Yıl Bitiş Tarihi Yil Başlangıç Tarihi daha önce olamaz. tarihleri düzeltmek ve tekrar deneyin., -The amount of {0} set in this payment request is different from the calculated amount of all payment plans: {1}. Make sure this is correct before submitting the document.,"Bu ödeme isteğinde belirlenen {0} tutarı, tüm ödeme planlarının hesaplanan tutarından farklı: {1}. Belgeyi göndermeden önce bunun doğru olduğundan emin olun.", -The day(s) on which you are applying for leave are holidays. You need not apply for leave.,Eğer izin için başvuruda edildiği gün (ler) tatildir. Sen izin talebinde gerekmez., -The field From Shareholder cannot be blank,Pay Sahipinden alan boş olamaz, +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. sonları düzeltin 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'nin terimleriyle bağlantılı olduğu için Akademik Yılı Yıl Sonu tarihi daha olamaz (Akademik Yılı {}). sonları düzeltin ve tekrar deneyin., +The Term Start Date cannot be earlier than the Year Start Date of the Academic Year to which the term is linked (Academic Year {}). Please correct the dates and try again.,Dönem Başlangıç Tarihi terimi birbiriyle bağlantılı olduğu için Akademik Yılı Yıl Başlangıç Tarihi daha önce imkansız (Akademik Yılı {}). sonları düzeltin ve tekrar deneyin., +The Year End Date cannot be earlier than the Year Start Date. Please correct the dates and try again.,Yıl Bitiş Tarihi Yıl Başlangıç Tarihi daha önce olamaz. sonları düzeltin ve tekrar deneyin., +The amount of {0} set in this payment request is different from the calculated amount of all payment plans: {1}. Make sure this is correct before submitting the document.,"Bu ödeme isteğinde belirtilen {0} özellikleri, tüm ödeme planlarının hesaplanan davranışlarından farklı: {1}. Belgeyi göndermeden önce bunun doğru olduğundan emin olun.", +The day(s) on which you are applying for leave are holidays. You need not apply for leave.,Eğer izin için başvuruda bulunulduğu gün (ler) tatildir. İstemenize izin gerekmez., +The field From Shareholder cannot be blank,Pay Sahipliğinden alan boş olamaz, The field To Shareholder cannot be blank,Hissedar Sahası boş olamaz, The fields From Shareholder and To Shareholder cannot be blank,Hissedar ve Hissedarya ait alanlar boş bırakılamaz, -The folio numbers are not matching,Folio numaraları eşleşmiyor, +The folio numbers are not matching,Folyo numaraları eşleşmiyor, The holiday on {0} is not between From Date and To Date,{0} üzerinde tatil Tarihten itibaren ve Tarihi arasında değil, The name of the institute for which you are setting up this system.,Enstitünün adı kendisi için bu sistemi kuruyoruz., The name of your company for which you are setting up this system.,Bu sistemi kurduğunu şirketinizin adı, -The number of shares and the share numbers are inconsistent,Hisse sayısı ve hisse sayıları tutarsız, -The payment gateway account in plan {0} is different from the payment gateway account in this payment request,"{0} planındaki ödeme ağ geçidi hesabı, bu ödeme isteğindeki ödeme ağ geçidi hesabından farklıdır", +The number of shares and the share numbers are inconsistent,Hisse miktarı ve his miktarları tutarsız, +The payment gateway account in plan {0} is different from the payment gateway account in this payment request,"{0} planındaki ödeme ağ sahip hesabı, bu ödeme talebindeki ödeme ağ mülk hesabından ilişkilendirme", The selected BOMs are not for the same item,Seçilen malzeme listeleri aynı madde için değildir, The selected item cannot have Batch,Seçilen öğe Toplu olamaz, The seller and the buyer cannot be the same,Satıcı ve alıcı aynı olamaz, @@ -2972,116 +2972,116 @@ The shareholder does not belong to this company,Hissedar bu şirkete ait değil, The shares already exist,Paylar zaten var, The shares don't exist with the {0},{0} ile paylaşımlar mevcut değil, "The task has been enqueued as a background job. In case there is any issue on processing in background, the system will add a comment about the error on this Stock Reconciliation and revert to the Draft stage","Görev, arka plan işi olarak yapıldı. Arka planda işleme konusunda herhangi bir sorun olması durumunda, sistem bu Stok Mutabakatı ile ilgili bir yorum ekler ve Taslak aşamasına geri döner", -"Then Pricing Rules are filtered out based on Customer, Customer Group, Territory, Supplier, Supplier Type, Campaign, Sales Partner etc.","Sonra Fiyatlandırma Kurallar Müşteri dayalı filtre edilir, Müşteri Grubu, Territory, Tedarikçi, Tedarikçi Tipi, Kampanya, Satış Ortağı vb", -"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}, +"Then Pricing Rules are filtered out based on Customer, Customer Group, Territory, Supplier, Supplier Type, Campaign, Sales Partner etc.","Sonra Fiyatlandırma Kuralları Müşteri temelli filtrelenir, Müşteri Grubu, Territory, Tedarikçi, Tedarikçi Tipi, Kampanya, Satış Ortağı vb", +"There are inconsistencies between the rate, no of shares and the amount calculated","Oran, ödeme miktarı ve hesaplanan tutarlar arasında tutarsızlıklar vardır", +There are more holidays than working days this month.,Bu aylık ç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 sesli toplama faktörü olabilir. Ancak, itfa için dönüştürme faktörü, tüm katmanlar için her zaman aynı olacaktır.", +There can only be 1 Account per Company in {0} {1},Sadece Şirketin 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 no leave period in between {0} and {1},{0} ile {1} süreleri 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, There is nothing to edit.,Düzenlenecek bir şey yok, -There isn't any item variant for the selected item,Seçilen öğe için herhangi bir öğe varyantı yok, -"There seems to be an issue with the server's GoCardless configuration. Don't worry, in case of failure, the amount will get refunded to your account.","Sunucunun GoCardless yapılandırmasında bir sorun var gibi görünüyor. Endişelenme, başarısızlık durumunda, tutar hesabınıza iade edilir.", +There isn't any item variant for the selected item,Seçilen öğe için herhangi bir öğe tahmini yok, +"There seems to be an issue with the server's GoCardless configuration. Don't worry, in case of failure, the amount will get refunded to your account.","Sunucunun GoCardless çevresinde bir sorun var gibi görünüyor. Endişelenme, çökmeleri durumunda, tutulmaları iade edilir.", There were errors creating Course Schedule,Ders Programı Oluşturma Hataları Oluştu, There were errors.,Hatalar vardı, -This Item is a Template and cannot be used in transactions. Item attributes will be copied over into the variants unless 'No Copy' is set,Bu Ürün Şablon ve işlemlerde kullanılamaz. 'Hayır Kopyala' ayarlanmadığı sürece Öğe özellikleri varyantları içine üzerinden kopyalanır, -This Item is a Variant of {0} (Template).,"Bu Öğe, {0} (Şablon) değişkenidir.", +This Item is a Template and cannot be used in transactions. Item attributes will be copied over into the variants unless 'No Copy' is set,Bu Öğe bir Şablondur ve işlemlerde kullanılamaz. 'Kopyalama Yok' ayarlanmadığı sürece öğe özellikleri varyantlara kopyalanacaktır, +This Item is a Variant of {0} (Template).,"Bu Öğe, {0} (Şablon)nin bir değişkenidir.", This Month's Summary,Bu Ayın Özeti, This Week's Summary,Bu Haftanın Özeti, -This action will stop future billing. Are you sure you want to cancel this subscription?,"Bu işlem, gelecekteki faturalandırmayı durduracak. Bu aboneliği iptal etmek istediğinizden emin misiniz?", -This covers all scorecards tied to this Setup,"Bu, bu Kurulum ile bağlantılı tüm puan kartlarını kapsar", -This document is over limit by {0} {1} for item {4}. Are you making another {3} against the same {2}?,Bu belge ile sınırı üzerinde {0} {1} öğe için {4}. yapıyoruz aynı karşı başka {3} {2}?, +This action will stop future billing. Are you sure you want to cancel this subscription?,"Bu işlemi, faturalandırmayı durduracak. Bu aboneliği iptal etmek istediğinizden emin misiniz?", +This covers all scorecards tied to this Setup,"Bu, bu Kurulum ile bağlantılı tüm puan kartlarını kapsayan", +This document is over limit by {0} {1} for item {4}. Are you making another {3} against the same {2}?,Bu belge ile sınırı üzerinde {0} {1} öğe için {4}. aynı karşı başka {3} {2}?, This is a root account and cannot be edited.,Bu bir kök hesabıdır ve düzenlenemez., This is a root customer group and cannot be edited.,Bu bir kök müşteri grubudur ve düzenlenemez., -This is a root department and cannot be edited.,Bu bir kök departmanıdır ve düzenlenemez., -This is a root healthcare service unit and cannot be edited.,Bu bir kök sağlık hizmeti birimidir ve düzenlenemez., -This is a root item group and cannot be edited.,Bu bir kök Ürün grubudur ve düzenlenemez., +This is a root department and cannot be edited.,Bu bir kök devlettir ve düzenlenemez., +This is a root healthcare service unit and cannot be edited.,Bu bir kök sağlık hizmet birimidir ve düzenlenemez., +This is a root item group and cannot be edited.,Bu bir kök grubu Üründür ve düzenlenemez., This is a root sales person and cannot be edited.,Bu bir kök satış kişisidir ve düzenlenemez., This is a root supplier group and cannot be edited.,Bu bir kök tedarikçi grubudur ve düzenlenemez., This is a root territory and cannot be edited.,Bu bir kök bölgedir ve düzenlenemez., -This is an example website auto-generated from ERPNext,Bu ERPNextten otomatik olarak üretilmiş bir örnek web sitedir., -This is based on logs against this Vehicle. See timeline below for details,"Bu, bu Araç karşı günlükleri dayanmaktadır. Ayrıntılar için aşağıdaki zaman çizelgesini bakın", -This is based on stock movement. See {0} for details,Bu stok hareketi dayanmaktadır. Bkz {0} ayrıntılar için, -This is based on the Time Sheets created against this project,"Bu, bu projeye karşı oluşturulan Zaman kağıtları dayanmaktadır", -This is based on the attendance of this Employee,"Bu, bu Çalışan katılımı esas alır", -This is based on the attendance of this Student,"Bu, bu Öğrencinin katılımıyla dayanmaktadır", -This is based on transactions against this Customer. See timeline below for details,"Bu, bu Müşteriye karşı işlemlere dayanmaktadır. Ayrıntılar için aşağıdaki zaman çizelgesini bakın", -This is based on transactions against this Healthcare Practitioner.,"Bu, bu Sağlık Hizmeti Uygulayıcısına yapılan işlemlere dayanmaktadır.", -This is based on transactions against this Patient. See timeline below for details,"Bu, bu Hastaya karşı işlemlere dayanmaktadır. Ayrıntılar için aşağıdaki zaman çizelgesine bakın", -This is based on transactions against this Sales Person. See timeline below for details,"Bu, bu Satış Kişisine karşı yapılan işlemlere dayanmaktadır. Ayrıntılar için aşağıdaki zaman çizelgesine bakın", -This is based on transactions against this Supplier. See timeline below for details,Bu Bu Satıcıya karşı işlemlere dayanmaktadır. Ayrıntılar için aşağıdaki zaman çizelgesini bakın, -This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?,"Bu, Maaş Fişleri gönderecek ve Tahakkuk Dergisi Girişi oluşturacaktır. Devam etmek istiyor musunuz?", +This is an example website auto-generated from ERPNext,Bu ERPNextten otomatik olarak üretilmiş bir örnek web sitesidir., +This is based on logs against this Vehicle. See timeline below for details,"Bu, bu Araç karşı günlükleri gider. Ayrıntılar için aşağıdaki zaman geçişini bakın", +This is based on stock movement. See {0} for details,Bu stok hareketleri devam ediyor. Bkz. {0} ayrıntılar için, +This is based on the Time Sheets created against this project,"Bu, bu projeye karşı potansiyel Zaman postalarını yönlendiriyor", +This is based on the attendance of this Employee,"Bu, bu çalışan yoğunluğu esas alır", +This is based on the attendance of this Student,"Bu, bu Öğrencinin katılımıyla artar", +This is based on transactions against this Customer. See timeline below for details,"Bu, bu Müşteriye karşı işlemlere ayrılmıştır. Ayrıntılar için aşağıdaki zaman geçişini bakın", +This is based on transactions against this Healthcare Practitioner.,"Bu, bu Sağlık Hizmeti Uygulayıcısına yapılan işlemlere bağlıdır.", +This is based on transactions against this Patient. See timeline below for details,"Bu, bu Hastaya karşı işlemlere göre yapılır. Ayrıntılar için aşağıdaki zaman aralarına bakın", +This is based on transactions against this Sales Person. See timeline below for details,"Bu, bu Satış Kişisine karşı yapılan işlemlere göre yapılır. Ayrıntılar için aşağıdaki zaman aralarına bakın", +This is based on transactions against this Supplier. See timeline below for details,Bu Satıcıya karşı işlemleri ayarlamak. Ayrıntılar için aşağıdaki zaman geçişini bakın, +This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?,"Bu, Maaş Balıkları gönderecek ve Tahakkuk Yevmiye Kaydı oluşturacaktır. Devam etmek istiyor musunuz?", This {0} conflicts with {1} for {2} {3},Bu {0} çatışmalar {1} için {2} {3}, Time Sheet for manufacturing.,Üretim için Mesai Kartı., -Time Tracking,Zaman Takip, +Time Tracking,Zaman Takibi, "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 exceeded the given hours.,Zamanlayıcı verilen saatleri aştı., -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,için, -To Address 1,Adrese 1, -To Address 2,Adres 2'ye, -To Bill,Faturala, -To Date,Tarihine kadar, -To Date cannot be before From Date,Bitiş tarihi başlangıç tarihinden önce olmamalıdır, +Time slots added,Zaman dilimleri eklendi, +Time(in mins),Zaman (dakika) , +Timer,Kronometre, +Timer exceeded the given hours.,Zamanlayıcı verilen saati aştı., +Timesheet,Mesai Kartı, +Timesheet for tasks.,Görevler için Mesai kartı., +Timesheet {0} is already completed or cancelled,Mesai Kartı {0} işletmeye alındı veya iptal edildi, +Timesheets,Mesai Kartı, +"Timesheets help keep track of time, cost and billing for activites done by your team","Zaman organizasyonları ekip tarafından yapılan uçuşlar için zaman, maliyet ve fatura izlemenize yardımcı olur", +Titles for print templates e.g. Proforma Invoice.,"Baskı Şablonları için başlıklar, boşaltma Proforma Fatura", +To,Kime, +To Address 1,Adres 1'ye, +To Address 2,Adres 2'ye, +To Bill,Faturalanacak, +To Date,Bitiş Tarihi, +To Date cannot be before From Date,Bitiş tarihi başlatma cezaları önce bitirme, 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", +To Date must be greater than From Date,"Tarihe, Tarihten büyük olmalı", To Date should be within the Fiscal Year. Assuming To Date = {0},Tarih Mali Yıl içinde olmalıdır. İlgili Tarih = {0}, To Datetime,DateTime için, To Deliver,Teslim edilecek, To Deliver and Bill,Teslim edilecek ve Faturalanacak, -To Fiscal Year,Mali Yıla, +To Fiscal Year,Mali Yıl, To GSTIN,GSTIN'e, -To Party Name,Parti adına, -To Pin Code,PIN Kodu'na, -To Place,Yerleştirmek, -To Receive,Almak, -To Receive and Bill,Teslimat ve Ödeme, -To State,Devlete, +To Party Name,Cari Adı bitişi, +To Pin Code,PIN Koduna, +To Place,Yerleştirilecek, +To Receive,Alınacak, +To Receive and Bill,Teslim Alınacak ve Faturalanacak, +To State,Hedef Durum, 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, +To date can not be equal or less than from date,Bugüne kadar aynı anda eşit veya daha az olamaz, To date can not be less than from date,Bugüne kadar bugünden daha az olamaz, -To date can not greater than employee's relieving date,Bugüne kadar çalışanın tahliye tarihinden daha büyük olamaz, -"To filter based on Party, select Party Type first",Partiye dayalı seçim için önce Parti Tipi seçiniz, -"To get the best out of ERPNext, we recommend that you take some time and watch these help videos.","ERPNext en iyi sonucu almak için, biraz zaman ayırın ve bu yardım videoları izlemek öneririz.", -"To include tax in row {0} in Item rate, taxes in rows {1} must also be included",Satır {0} a vergi eklemek için {1} satırlarındaki vergiler de dahil edilmelidir, -To make Customer based incentive schemes.,Müşteri bazlı teşvik programları yapmak., -"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 date can not greater than employee's relieving date,Bugüne kadar çalışanın sevkıyatı daha büyük olamaz, +"To filter based on Party, select Party Type first",Cariye dayalı seçim için önce Cari Tipi seçiniz, +"To get the best out of ERPNext, we recommend that you take some time and watch these help videos.","ERPNext en iyi sonucu almak için, biraz zaman ayırın ve bu yardım videolarını izlemenizi öneririz.", +"To include tax in row {0} in Item rate, taxes in rows {1} must also be included",Satır {0} bir vergiyi dahil etmek için {1} satırlarındaki vergiler de dahil edilmelidir, +To make Customer based incentive schemes.,Müşteri temelli teşvik programları yapıyor., +"To merge, following properties must be same for both items","Birleştirme 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 Bağlılık Puanlarının günlüklerini görmek için., -To {0},Şu kişiye {0}, +"To set this Fiscal Year as Default, click on 'Set as Default'","Varsayılan olarak bu Mali Yılı ayarları için, 'Varsayılan olarak ayarladık' 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 {0},Şu kişi {0}, To {0} | {1} {2},Şu kişi(lere) {0} | {1} {2}, Toggle Filters,Geçiş Filtreleri, -Too many columns. Export the report and print it using a spreadsheet application.,Çok fazla sütun. Raporu çıkarın ve spreadsheet uygulaması kullanarak yazdırın., +Too many columns. Export the report and print it using a spreadsheet application.,Çok fazla sütun. Rapor çıkarın ve elektronik tablo uygulamasını kullanarak yazdırın., Tools,Araçlar, -Total (Credit),Toplam (Kredi), -Total (Without Tax),Toplam (Vergisiz), -Total Absent,Toplam Yok, -Total Achieved,Toplam Elde, +Total (Credit),Toplam (Alacak), +Total (Without Tax),Toplam (Vergi hariç), +Total Absent,Toplam Devamsız, +Total Achieved,Toplam Eldeki, Total Actual,Gerçek Toplam, -Total Allocated Leaves,Toplam Tahsis Edilen Yapraklar, -Total Amount,Toplam tutar, +Total Allocated Leaves,Toplam Tahsis Edilen İzin, +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ın Alma Makbuzu Öğeler tablosundaki toplam Uygulanabilir Masraflar Toplam Vergi ve Masraflar aynı olmalıdır, -Total Budget,Toplam bütçe, +Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Satınalma Makbuzu Vergi Öğeleri tablosundaki toplam uygulanabilir Masraflar Toplam 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ı 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 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 Debit must be equal to Total Credit. The difference is {0},"Toplam Borç Toplam Krediye eşit olmalıdır. Aradaki fark, {0}", +Total Deduction,Toplam Kesinti, Total Invoiced Amount,Toplam Faturalanmış Tutar, -Total Leaves,Toplam Yapraklar, +Total Leaves,Toplam İzin, Total Order Considered,Dikkat Toplam Sipariş, Total Order Value,Toplam Sipariş Miktarı, Total Outgoing,Toplam Giden, @@ -3089,93 +3089,93 @@ 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 tutar, +Total Payment Amount in Payment Schedule must be equal to Grand / Rounded Total,Ödeme Planındaki Toplam Ödeme Tutarı Büyük / Yuvarlak Toplam eşit olmalıdır., +Total Payments,Toplam Ödeme, Total Present,Toplam Mevcut, -Total Qty,Toplam Adet, -Total Quantity,Toplam miktar, -Total Revenue,Toplam gelir, +Total Qty,Toplam Mik, +Total Quantity,Toplam Miktar, +Total Revenue,toplam Gelir, Total Student,Toplam Öğrenci, Total Target,Toplam Hedef, -Total Tax,Toplam vergi, +Total Tax,Toplam Vergi, Total Taxable Amount,Toplam Vergilendirilebilir Tutar, Total Taxable Value,Toplam Vergilendirilebilir Değer, Total Unpaid: {0},Toplam Ödenmemiş: {0}, Total Variance,Toplam Varyans, -Total Weightage of all Assessment Criteria must be 100%,Bütün Değerlendirme Kriterleri Toplam weightage% 100 olmalıdır, -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 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 Weightage of all Assessment Criteria must be 100%,Bütün Değerlendirme Kriterleri Toplam ağırlık %100 olmalıdır, +Total advance ({0}) against Order {1} cannot be greater than the Grand Total ({2}),Toplam avans ({0}) Sipariş karşı {1} Genel Toplamdan büyük olamaz ({2}), +Total advance amount cannot be greater than total claimed amount,"Toplam avans miktarı, talep edilen miktar tutarları kadar olamaz", +Total advance amount cannot be greater than total sanctioned amount,"Toplam avans miktarı, toplam onaylanan tutarlardan fazla olamaz", +Total allocated leaves are more days than maximum allocation of {0} leave type for employee {1} in the period,"Toplam sarf malzemeleri, dönemdeki {1} çalışan için maksimum {1} izin türlerinin daha fazla sürümleri.", +Total allocated leaves are more than days in the period,Toplam harcamalar süresi boyunca gün daha vardır, +Total allocated percentage for sales team should be 100,Satış ekibi için koruma 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 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 flexible benefit component amount {0} should not be less than max benefits {1},"Toplam esnek kullanım bileşenleri {0} birlikte, maksimum faydadan {1} daha az tüketir", 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 leaves allocated is mandatory for Leave Type {0},{0} İzin Türü için koruma toplam izinler süreleri, +Total working hours should not be greater than max working hours {0},Toplam çalışma süresi maksimum çalışma saatleri fazla harcama {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 sunucu için size 'Dayalı Suçlamaları dağıtın' değişmeli sıfır olabilir, Total(Amt),Toplam (AMT), Total(Qty),Toplam (Adet), Traceability,İzlenebilirlik, -Traceback,Geri iz, +Traceback,Geri takip, Track Leads by Lead Source.,Lead Source tarafından Leads izleyin., Training,Eğitim, -Training Event,Eğitim Etkinlik, +Training Event,Eğitim Etkinliği, Training Events,Eğitim Etkinlikleri, Training Feedback,Eğitim Görüşleri, Training Result,Eğitim Sonucu, -Transaction,işlem, +Transaction,İşlem, Transaction Date,İşlem Tarihi, Transaction Type,işlem tipi, -Transaction currency must be same as Payment Gateway currency,İşlem birimi Ödeme Gateway para birimi olarak aynı olmalıdır, -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, -Transfer,Transfer, +Transaction currency must be same as Payment Gateway currency,İşlem para birimi Ödeme Gateway para birimi ile aynı olmalıdır, +Transaction not allowed against stopped Work Order {0},İşlem durdurulmuş {0} iş emrine karşı izin verilmiyor, +Transaction reference no {0} dated {1},{1} tarihli {0} numaralı işlem referansı, +Transactions,İşlemler, +Transactions can only be deleted by the creator of the Company,İşlemler sadece Şirketin yaratıcısı tarafından silinebilir, +Transfer,Transfer et, Transfer Material,Transfer Malzemesi, -Transfer Type,Aktarım Türü, -Transfer an asset from one warehouse to another,başka bir depodan bir varlık transfer, -Transfered,Aktarılan, +Transfer Type,Transfer Türü, +Transfer an asset from one warehouse to another,başka bir depodan bir varlık transferi, +Transfered,Transfer edildi, Transferred Quantity,Aktarılan Miktar, -Transport Receipt Date,Taşıma Fişi Tarihi, -Transport Receipt No,Taşıma Makbuzu No, -Transportation,Taşıma, -Transporter ID,Taşıyıcı Kimliği, -Transporter Name,Taşıyıcı Adı, +Transport Receipt Date,Nakliye Fişi Tarihi, +Transport Receipt No,Nakliye Fişi No, +Transportation,Nakliye, +Transporter ID,Nakliyeci Kimliği, +Transporter Name,Nakliyeci Adı, Travel,Gezi, Travel Expenses,Seyahat Giderleri, Tree Type,Ağaç Tipi, 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., +Tree of Procedures,mahkumlar ağacı, +Tree of Quality Procedures.,Kalite Ağacı hükümleri., Tree of financial Cost Centers.,Finansal Maliyet Merkezleri Ağacı., -Tree of financial accounts.,mali hesaplarının Ağacı., +Tree of financial accounts.,mali hesap Ağaçlarının., Treshold {0}% appears more than once,"Eşik {0},% kereden fazla görünür", Trial Period End Date Cannot be before Trial Period Start Date,Deneme Süresi Bitiş Tarihi Deneme Süresi Başlangıç Tarihinden önce olamaz, -Trialling,trialling, +Trialling,deneme, Type of Business,İş türü, -Types of activities for Time Logs,Zaman Kayıtlar faaliyetleri Türleri, +Types of activities for Time Logs,Zaman Kayıtları operasyon Türleri, UOM,Birim, -UOM Conversion factor is required in row {0},Ölçü Birimi Dönüşüm katsayısı satır {0} da gereklidir, -UOM coversion factor required for UOM: {0} in Item: {1},Ürün {1} de Ölçü Birimi: {0} için Ölçü Birimi dönüştürme katsayısı gereklidir., +UOM Conversion factor is required in row {0},Ölçü Birimi Dönüşüm tüketimi satırı {0} da gereklidir, +UOM coversion factor required for UOM: {0} in Item: {1},Ürün {1} de Ölçü Birimi: {0} için Ölçü Birimi dönüştürme parametresi dahildir., 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 variable: ,Değişken 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 taşıma kaydırma el ile oluşturun, +Unable to find score starting at {0}. You need to have standing scores covering 0 to 100,{0} 'da başlarken skor bulunamadı. 0'dan 100'e kadar olan ayakta puanlara sahip olmanız gerekir, +Unable to find variable: ,işletim bulunamadı:, Unblock Invoice,Faturanın Engellenmesini Kaldır, -Uncheck all,Tümünü işaretleme, +Uncheck all,Tümünü karıştırma, Unclosed Fiscal Years Profit / Loss (Credit),Kapanmamış Mali Yıl Kâr / Zarar (Kredi), -Unit,birim, -Unit of Measure,Ölçü birimi, +Unit,Birim, +Unit of Measure,Ölçü Birimi, 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,Bilinmeyen, -Unpaid,ödenmemiş, +Unknown,Bilinmiyor, +Unpaid,Ödenmemiş, Unsecured Loans,Teminatsız Krediler, Unsubscribe from this Email Digest,Bu e-posta Digest aboneliğinden çık, Unsubscribed,Kaydolmamış, @@ -3183,127 +3183,127 @@ 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,Güncelleme Maliyeti, +Update Cost,Maliyeti Güncelle, Update Items,Öğeleri Güncelle, -Update Print Format,Update Yazıcı Formatı, -Update Response,Yanıt Güncelle, +Update Print Format,Yazıcı Formatını Güncelle, +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ı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, +Update rate as per last purchase,Son Alışa göre fiyatı güncelle, +Update stock must be enable for the purchase invoice {0},Satınalma faturası {0} satınalma faturası için etkinleştirilmelidir, +Updating Variants...,Varyantlar Güncelleniyor..., +Upload your letter head and logo. (you can edit them later).,Mektup baş ve logo yükleyin. (Daha sonra bunları düzenleyebilirsiniz)., +Upper Income,üst gelir, Use Sandbox,Kullanım Sandbox, -Used Leaves,Kullanılan yapraklar, -User,kullanıcı, +Used Leaves,Kullanılan İzin, +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 ID not set for Employee {0},Çalışan {0} için kullanıcı sıfatı 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 has not applied rule on the invoice {0},Kullanıcı {0} faturasına kural uygulamasıydı, +User {0} already exists,{0} kullanıcı zaten mevcut, +User {0} created,{0}görüşmeler, 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} 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ı", +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'ı temizleme., +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ı, 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 From Date must be lesser than Valid Upto Date.,"Tarihten geçerli Tarih, geçerlie Kadar hüküm olandan daha az olmalıdır.", 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, -Validity,Geçerlilik, +Valid from and valid upto fields are mandatory for the cumulative,Kümülatif alanlar için geçerli ve geçerli alanlar, +Valid from date must be less than valid upto date,Tarihten itibaren geçerli olan tarihten geçerli olandan az olmalıdır, +Valid till date cannot be before transaction date,geçerli tarihe kadar işlem tarihi öncesi olamaz, +Validity,geçerlilik, Validity period of this quotation has ended.,Bu fiyat teklifinin geçerlilik süresi sona erdi., Valuation Rate,Değerleme Oranı, -Valuation Rate is mandatory if Opening Stock entered,Açılış Stok girdiyseniz Değerleme Oranı zorunludur, +Valuation Rate is mandatory if Opening Stock entered,Açılış Stoğu girilirse Değerleme Oranı zorunludur, Valuation type charges can not marked as Inclusive,Değerleme tipi ücretleri dahil olarak işaretlenmiş olamaz, Value Or Qty,Değer veya Miktar, -Value Proposition,Değer Önerisi, -Value for Attribute {0} must be within the range of {1} to {2} in the increments of {3} for Item {4},{0} Attribute değer aralığında olmalıdır {1} {2} artışlarla {3} Öğe için {4}, -Value missing,Değer eksik, +Value Proposition,Değer Önerileri, +Value for Attribute {0} must be within the range of {1} to {2} in the increments of {3} for Item {4},{0} Attribute değer aralığı olmalıdır {1} {2} dizilerle {3} Öğe için {4}, +Value missing,değer eksik, Value must be between {0} and {1},Değer {0} ve {1} arasında olmalıdır, "Values of exempt, nil rated and non-GST inward supplies","Muaf, sıfır değer ve GST dışı iç arz değerleri", -Variable,Değişken, +Variable,hareketli, Variance,Varyans, Variance ({}),Varyans ({}), -Variant,varyant, +Variant,sahip olmak, Variant Attributes,Varyant Nitelikler, -Variant Based On cannot be changed,Temel Varyant değiştirilemez, +Variant Based On cannot be changed,Temel Değişken 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, +Variant creation has been queued.,Varyant oluşturma işlemi kayda alındı., +Vehicle Expenses,araç giderleri, Vehicle No,Araç No, Vehicle Type,araç tipi, Vehicle/Bus Number,Araç / Otobüs Numarası, Venture Capital,Girişim Sermayesi, -View Chart of Accounts,Hesapların Grafiğini Görüntüle, +View Chart of Accounts,Hesapların Grafiği Görüntüle, View Fees Records,Ücret Kayıtlarını Görüntüleme, -View Form,Formu Görüntüle, +View Form,Form Görüntüle, View Lab Tests,Lab Testlerini Görüntüle, -View Leads,Görünüm İlanlar, -View Ledger,Değerlendirme Defteri, +View Leads,Adaylerı Göster, +View Ledger,Defteri Göster, View Now,Şimdi Görüntüle, -View a list of all the help videos,Tüm yardım videoların bir listesini görüntüleyin, +View a list of all the help videos,Tüm yardım videolarının bir listesini alma, View in Cart,Sepet Görüntüle, Visit report for maintenance call.,Bakım araması için ziyaret raporu., Visit the forums,Forumları ziyaret et, -Vital Signs,Hayati bulgular, +Vital Signs,Hayati geçirmek, Volunteer,Gönüllü, Volunteer Type information.,Gönüllü Türü bilgileri., Volunteer information.,Gönüllü bilgi., -Voucher #,Föy #, +Voucher #,#, Voucher No,Föy No, Voucher Type,Föy Türü, -WIP Warehouse,WIP Depo, +WIP Warehouse,Yarı Mamül 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, -Warehouse is mandatory,Depo zorunludur, -Warehouse is mandatory for stock Item {0} in row {1},Satır {1} de stok Ürünü {0} için depo zorunludur, +Warehouse is mandatory,depo cezaları, +Warehouse is mandatory for stock Item {0} in row {1},Satır {1} de stok Ürün {0} için depo bakım ürünleri, Warehouse not found in the system,Sistemde depo bulunmadı, -"Warehouse required at Row No {0}, please set default warehouse for the item {1} for the company {2}","{0} numaralı Satırda gerekli depo lütfen, {2} şirketi için {1} öğesinin varsayılan depolamasını lütfen ayarlayın", +"Warehouse required at Row No {0}, please set default warehouse for the item {1} for the company {2}","{0} numaralandırma Satırda gerekli depo lütfen, {2} şirket için {1} varlığın varsayılan depolamasını lütfen ayarlayın", Warehouse required for stock Item {0},Stok Ürünü {0} için depo gereklidir, -Warehouse {0} can not be deleted as quantity exists for Item {1},Ürün {1} için miktar mevcut olduğundan depo {0} silinemez, +Warehouse {0} can not be deleted as quantity exists for Item {1},Ürün {1} için miktar mevcut olduklarında depo {0} silinemez, Warehouse {0} does not belong to company {1},Depo {0} Şirket {1}e ait değildir, -Warehouse {0} does not exist,Depo {0} yoktur, -"Warehouse {0} is not linked to any account, please mention the account in the warehouse record or set default inventory account in company {1}.","Depo {0} herhangi bir hesaba bağlı değil, lütfen depo kaydındaki hesaptaki sözcükten veya {1} şirketindeki varsayılan envanter hesabını belirtin.", -Warehouses with child nodes cannot be converted to ledger,alt düğümleri ile depolar Ledger dönüştürülebilir olamaz, +Warehouse {0} does not exist,Depo {0} yok, +"Warehouse {0} is not linked to any account, please mention the account in the warehouse record or set default inventory account in company {1}.","Depo {0} herhangi bir açıklamaya bağlı değil, lütfen depo kaydındaki hesaptaki sözcükten veya {1} şirketteki varsayılan envanter hesabını kullanın.", +Warehouses with child nodes cannot be converted to ledger,alt düğümleri ile depolar Ledger dönüştürülemez, Warehouses with existing transaction can not be converted to group.,Mevcut işlem ile depolar grubuna dönüştürülemez., -Warehouses with existing transaction can not be converted to ledger.,Mevcut işlem ile depolar defterine dönüştürülür edilemez., +Warehouses with existing transaction can not be converted to ledger.,Mevcut işlem ile depolar defterine dönüştürülemez., Warning,Uyarı, -Warning: Another {0} # {1} exists against stock entry {2},Uyarı: Başka {0} # {1} stok girişi karşı var {2}, +Warning: Another {0} # {1} exists against stock entry {2},Uyarı: {2} Stok Hareketi karşı başka bir {0} # {1} var, Warning: Invalid SSL certificate on attachment {0},Uyarı: eki Geçersiz SSL sertifikası {0}, -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: Invalid attachment {0},Uyarı: Geçersiz İnceleme {0}, +Warning: Leave application contains following block dates,Uyarı: İzin yazılımı aşağıdaki engel bölümleri 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ı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 against Serial No.,Seri No. karşı Garanti İddiası, +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: System will not check overbilling since amount for Item {0} in {1} is zero,Uyarı: {1} deki {0} ürün bedeli sıfır olduğu için sistem fazla faturasını ödemeyi kontrol etmeyecektir, +Warranty,garanti, +Warranty Claim,Garanti Talebi, +Warranty Claim against Serial No.,Seri No'ya karşı Garanti Talebi, 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 should be a public file or website URL,Web Sitesi Resim kamu dosyası veya web sitesi URL'si 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, Website Manager,Web Yöneticisi, Website Settings,Web Sitesi Ayarları, Wednesday,Çarşamba, -Week,Hafta, +Week,Haftalık, Weekdays,Hafta içi, Weekly,Haftalık, -"Weight is mentioned,\nPlease mention ""Weight UOM"" too","Ağırlık çok ""Ağırlık Ölçü Birimi"" belirtiniz \n, söz edilmektedir", -Welcome email sent,Hoşgeldiniz e-posta adresine gönderildi, +"Weight is mentioned,\nPlease mention ""Weight UOM"" too","Ağırlık çok ""Ağırlık Ölçü Birimi"" Belirtiniz \n, söz verilmektedir", +Welcome email sent,Hoşgeldiniz e-posta gönderimi yapılır, Welcome to ERPNext,Hoşgeldiniz, -What do you need help with?,Ne konuda yardıma ihtiyacın var?, +What do you need help with?,Ne konulardaki güçler var?, 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 eden iş, -Work Order,İş emri, +Work In Progress,Devam ediyor, +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, @@ -3312,66 +3312,66 @@ Work Order {0} must be cancelled before cancelling this Sales Order,Bu Müşteri 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,Devam eden depo işi teslimden önce gereklidir, -Workflow,İş Akışı, +Work-in-Progress Warehouse is required before Submit,Göndermeden önce Work-in-Progress Deposu gereklidir, +Workflow,Workflow, Working,Çalışıyor, -Working Hours,Iş saatleri, +Working Hours,Çalışma 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, -Wrong Password,Yanlış şifre, -Year start date or end date is overlapping with {0}. To avoid please set company,Yılın başlangıç ve bitiş tarihi {0} ile çakışıyor. Engellemek için lütfen firma seçin., -You are not authorized to add or update entries before {0},{0} dan önceki girdileri ekleme veya güncelleme yetkiniz yok, -You are not authorized to approve leaves on Block Dates,Blok Tarihlerdeki çıkışları onaylama yetkiniz yok, -You are not authorized to set Frozen value,Donmuş değeri ayarlama yetkiniz yok, -You are not present all day(s) between compensatory leave request days,Telafi edici izin talebi günleri arasında tüm gün (ler) mevcut değilsiniz., -You can not change rate if BOM mentioned agianst any item,Herhangi bir Ürünye karşo BOM belirtildiyse oran değiştiremezsiniz., -You can not enter current voucher in 'Against Journal Entry' column,Sen sütununda 'Journal girişine karşı' geçerli fiş giremezsiniz, -You can only have Plans with the same billing cycle in a Subscription,Abonelikte yalnızca aynı faturalandırma döngüsüne sahip Planlarınız olabilir, -You can only redeem max {0} points in this order.,Bu sırayla yalnızca maksimum {0} noktayı kullanabilirsiniz., +Wrong Password,Yanlış Şifre, +Year start date or end date is overlapping with {0}. To avoid please set company,Yılın başlangıç ve bitiş tarihi {0} ile kesişiyor. Engellemek için lütfen firma seçiniz., +You are not authorized to add or update entries before {0},{0} ve önceki girdileri ekleme veya güncelleme yetkiniz yok, +You are not authorized to approve leaves on Block Dates,Blok Tarihlerindeki çıkışları onaylama yetkiniz yok, +You are not authorized to set Frozen value,Donmuş değerini ayarlamak yetkiniz yok, +You are not present all day(s) between compensatory leave request days,Telafi edici izin talebi gün arasında tüm gün (ler) mevcut değilsiniz., +You can not change rate if BOM mentioned agianst any item,Herhangi bir Ürünye karşo BOM belirtilmişse orantısız değiştiremezsiniz., +You can not enter current voucher in 'Against Journal Entry' column,Sen sütununda 'Journal girişine karşı' geçerli fişi giremezsin, +You can only have Plans with the same billing cycle in a Subscription,Abonelikte yalnızca aynı faturalandırma tüketimine sahip Planlarınız olabilir, +You can only redeem max {0} points in this order.,Bu parçaları yalnızca maksimum {0} noktayı kullanabilirsiniz., 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 select a maximum of one option from the list of check boxes.,Onay listelerinden yalnızca en fazla bir seçeneğin sağlanması., 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 Bağlılık Puanlarını kullanamazsınız., +You can't redeem Loyalty Points having more value than the Grand Total.,Büyük Toplam'dan daha fazla değer olan Sadakat 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 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, +You don't have enought Loyalty Points to redeem,Kullanılması gereken sadakat puanlarına sahip olabilirsiniz, You have already assessed for the assessment criteria {}.,Zaten değerlendirme kriteri {} için değerlendirdiniz., -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 already selected items from {0} {1},Zaten öğelerinizi seçtiniz {0} {1}, +You have been invited to collaborate on the project: {0},{0} projesine davet edilmek 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 logged in to access this page,Bu sayfaya erişmek için giriş yapmış olmanız gerekmektedir, +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'te bulunmak 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 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?, +You will lose records of previously generated invoices. Are you sure you want to restart this subscription?,geçmişteki faturaların kayıtlarını kaybedersiniz. Bu aboneliği tekrar başlatmak istediğinizden emin misiniz?, Your Organization,Kuruluşunuz, Your cart is Empty,Sepetiniz boş, Your email address...,E..., -Your order is out for delivery!,Siparişiniz teslimat için dışarıda!, +Your order is out for delivery!,Siparişiniz için teslimat için teslimat!, Your tickets,Biletleriniz, ZIP Code,Posta kodu, [Error],[Hata], [{0}](#Form/Item/{0}) is out of stock,[{0}](#Form/Item/{0}) stokta yok, -`Freeze Stocks Older Than` should be smaller than %d days.,`Freeze Stocks Older Than` %d günden daha kısa olmalıdır., +`Freeze Stocks Older Than` should be smaller than %d days.,`%d'den Eski Stokları Dondur' günden daha kısa olmalıdır., based_on,temel_olarak, -cannot be greater than 100,100 'den daha büyük olamaz, +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. Bank, Cash, Credit Card","Örneğin: Banka, Nakit, Kredi Kartı", +"e.g. ""Build tools for builders""","örnekleme: ""Yazılım Çözümleri""", +"e.g. ""Primary School"" or ""University""","örnekleme, "İlköğretim Okulu" ya da "Üniversite"", +"e.g. Bank, Cash, Credit Card","Örnek: Banka, Nakit, Kredi Kartı", hidden,gizli, -modified,değiştirilmiş, -old_parent,old_parent, +modified,ilerlemek, +old_parent,eski_ebeveyn, on,üzerinde, {0} '{1}' is disabled,{0} '{1}' devre dışı, {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}) cannot be greater than planned quantity ({2}) in Work Order {3},"{0} ({1}), İş Emrinde {3} sürümünün miktarın ({2}) fazla olamaz", +{0} - {1} is inactive student,{0} - {1} öğrenci 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 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., @@ -3379,113 +3379,113 @@ on,üzerinde, {0} Request for {1},{0} {1} için istek, {0} Result submittted,{0} Sonuç gönderildi, {0} Serial Numbers required for Item {1}. You have provided {2}.,{0} Öğe için gerekli Seri Numaraları {1}. Sağladığınız {2}., -{0} Student Groups created.,Öğrenci Grupları {0} oluşturuldu., -{0} Students have been enrolled,{0} Öğrenciler kaydoldu, -{0} against Bill {1} dated {2},{0} Bill karşı {1} tarihli {2}, +{0} Student Groups created.,Öğrenci Grupları {0} kuruldu., +{0} Students have been enrolled,{0} öğrenci kaydoldu, +{0} against Bill {1} dated {2},{0} Fatura Karşısı {1} tarihli {2}, {0} against Purchase Order {1},{0} Satınalma siparişine karşı{1}, {0} against Sales Invoice {1},{0} Satış Faturasına karşı {1}, {0} against Sales Order {1},{0} Satış Siparişine karşı {1}, -{0} already allocated for Employee {1} for period {2} to {3},{0} zaten Çalışan tahsis {1} dönem {2} için {3}, +{0} already allocated for Employee {1} for period {2} to {3},{0} zaten çalışan ödenekleri {1} dönem {2} için {3}, {0} applicable after {1} working days,{1} iş gününden sonra {0} uygulanabilir, -{0} asset cannot be transferred,{0} varlığı transfer edilemez, +{0} asset cannot be transferred,{0} varlığını aktaramaz, {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ı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ı'na sahip ve bu tedarikçinin RFQ'ları dikkatli bir şekilde verilmelidir., +{0} created,{0} sahip, +"{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 çalıştırma., +"{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 çıkarılıyor., {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} 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 ekle", {0} entered twice in Item Tax,{0} iki kere ürün vergisi girildi, {0} for {1},{0} için {1}, {0} has been submitted successfully,{0} başarıyla gönderildi, -{0} has fee validity till {1},"{0}, {1} yılına kadar ücret geçerliliğine sahiptir.", +{0} has fee validity till {1},"{0}, {1} Yükün kadar ücret geçerliliğine sahiptir.", {0} hours,{0} saat, -{0} in row {1},{1} satırında {0}, +{0} in row {1},{1} bilgisinde {0}, {0} is blocked so this transaction cannot proceed,"{0} engellendi, bu işleme devam edilemiyor", -{0} is mandatory,{0} alanı zorunludur, -{0} is mandatory for Item {1},{0} Ürün {1} için zorunludur, -{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}.,{0} zorunludur. {1} ve {2} için Döviz kaydı oluşturulmayabilir., +{0} is mandatory,{0} yaşam alanı, +{0} is mandatory for Item {1},{0} Ürün {1} için cezalar, +{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}.,{0} yaptırımlar. {1} ve {2} için Döviz kaydı oluşturulabilir., {0} is not a stock Item,{0} bir stok ürünü değildir., {0} is not a valid Batch Number for Item {1},{0} Ürün {1} için geçerli bir parti numarası değildir, {0} is not added in the table,Tabloya {0} eklenmedi, {0} is not in Optional Holiday List,{0} İsteğe Bağlı Tatil Listesinde değil, {0} is not in a valid Payroll Period,{0} geçerli bir Bordro Döneminde değil, -{0} is now the default Fiscal Year. Please refresh your browser for the change to take effect.,{0} varsayılan Mali Yıldır. Değiştirmek için tarayıcınızı yenileyiniz, -{0} is on hold till {1},"{0}, {1} tarihine kadar beklemede", +{0} is now the default Fiscal Year. Please refresh your browser for the change to take effect.,{0} varsayılan Mali Yıldır. değiştirmek için tarayıcınızı yenileyiniz, +{0} is on hold till {1},"{0}, {1} geçen zamana kadar beklemede", {0} item found.,{0} öğe bulundu., {0} items found.,{0} öğe bulundu., -{0} items in progress,{0} ürün işlemde, -{0} items produced,{0} ürün üretildi, +{0} items in progress,{0} ürün işleminde, +{0} items produced,{0} ürün üretimi, {0} must appear only once,{0} sadece bir kez yer almalıdır, -{0} must be negative in return document,{0} return belgesinde negatif olmalıdır, +{0} must be negative in return document,{0} iade belgesinde negatif olmalı, {0} must be submitted,{0} gönderilmelidir, -{0} not allowed to transact with {1}. Please change the Company.,"{0}, {1} ile işlem yapmasına izin verilmiyor. Lütfen Şirketi değiştirin.", +{0} not allowed to transact with {1}. Please change the Company.,"{0}, {1} ile işlem yapmasına izin verilmiyor. Lütfen Şirketi kurallarına uyun.", {0} not found for item {1},{1} öğesi için {0} bulunamadı, -{0} parameter is invalid,{0} parametre geçersiz, +{0} parameter is invalid,{0} parametresi geçersiz, {0} payment entries can not be filtered by {1},{0} ödeme girişleri şu tarafından filtrelenemez {1}, {0} should be a value between 0 and 100,"{0}, 0 ile 100 arasında bir değer olmalıdır", {0} units of [{1}](#Form/Item/{1}) found in [{2}](#Form/Warehouse/{2}),{0} miktar [{1}](#Form/Item/{1}) bulunduğu yer [{2}](#Form/Warehouse/{2}), -{0} units of {1} needed in {2} on {3} {4} for {5} to complete this transaction.,Bu işlemi tamamlamak için {2} içinde {3} {4} üstünde {5} için {0} miktar {1} gerekli., -{0} units of {1} needed in {2} to complete this transaction.,Bu işlemi tamamlamak için {2} içinde {0} birim {1} gerekli., +{0} units of {1} needed in {2} on {3} {4} for {5} to complete this transaction.,Bu işlemi gerçekleştirmek için {2} içinde {3} {4} üstünde {5} için {0} miktar {1} gerekli., +{0} units of {1} needed in {2} to complete this transaction.,Bu işlemi yapmak için {2} içinde {0} birim {1} gerekli., {0} valid serial nos for Item {1},Ürün {1} için {0} geçerli bir seri numarası, -{0} variants created.,{0} varyant oluşturuldu., -{0} {1} created,{0} {1} oluşturuldu, +{0} variants created.,{0} geçmiş., +{0} {1} created,{0} {1} kuruluş, {0} {1} does not exist,{0} {1} mevcut değil, -{0} {1} has been modified. Please refresh.,"{0}, {1} düzenlenmiştir. Lütfen yenileyin.", -{0} {1} has not been submitted so the action cannot be completed,"{0} {1} gönderilmedi, bu nedenle eylem tamamlanamadı", -"{0} {1} is associated with {2}, but Party Account is {3}","{0} {1}, {2} ile ilişkili, ancak Parti Hesabı {3}", +{0} {1} has been modified. Please refresh.,"{0}, {1} düzenlendi. Lütfen yenileyin.", +{0} {1} has not been submitted so the action cannot be completed,"{0} {1} verildi, bu nedenle eylem tamamlanamadı", +"{0} {1} is associated with {2}, but Party Account is {3}","{0} {1}, {2} dosyaları, ancak Cari Hesabı {3}", {0} {1} is cancelled or closed,{0} {1} iptal edildi veya kapatıldı, -{0} {1} is cancelled or stopped,{0} {1} iptal edilmiş veya durdurulmuş, +{0} {1} is cancelled or stopped,{0} {1}iptal edilmiş veya durdurulmuş, {0} {1} is cancelled so the action cannot be completed,"{0} {1} iptal edildi, bu nedenle eylem tamamlanamadı", {0} {1} is closed,{0} {1} kapatıldı, {0} {1} is disabled,{0} {1} devre dışı, {0} {1} is frozen,{0} {1} donduruldu, {0} {1} is fully billed,{0} {1} tam fatura edilir, {0} {1} is not active,{0} {1} aktif değil, -{0} {1} is not associated with {2} {3},"{0} {1}, {2} {3} ile ilişkili değil", +{0} {1} is not associated with {2} {3},"{0} {1}, {2} {3} ile yayınlamıyor", {0} {1} is not present in the parent company,{0} {1} ana şirkette mevcut değil, {0} {1} is not submitted,{0} {1} teslim edilmedi, {0} {1} is {2},"{0} {1}, {2}", {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}: 'Kar ve Zarar' türü hesabı {2} Entry Açılışına izin verilmez, +{0} {1}: Account {2} does not belong to Company {3},{0} {1}: Hesap {2} Şirkete 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 is mandatory for Item {2},Ürün{2} için {0} {1}: Maliyert Merkezi yaptırımları, +{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 kapsamlı bir Masraf Merkezi tanımlayın., +{0} {1}: Cost Center {2} does not belong to Company {3},{0} {1}: Maliyet Merkezi {2} Şirkete 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}: Either debit or credit amount is required for {2},{0} {1}: {2} için borç ya da alacak alacaklısı girilmelidir, {0} {1}: Supplier is required against Payable account {2},{0} {1}: Borç hesabı {2} için tedarikçi tanımlanmalıdır, -{0}% Billed,{0}% Faturalandırıldı, +{0}% Billed,%{0} Faturalandırıldı, {0}% Delivered,{0}% Teslim Edildi, "{0}: Employee email not found, hence email not sent",{0}: Çalışanın e-posta adresi bulunamadığı için e-posta gönderilemedi, {0}: From {0} of type {1},{0}: gönderen {0} çeşidi {1}, {0}: From {1},{0}: gönderen {1}, {0}: {1} does not exists,{0}: {1} mevcut değil, -{0}: {1} not found in Invoice Details table,{0}: {1} Fatura Ayrıntıları tablosunda bulunamadı, +{0}: {1} not found in Invoice Details table,{0}: {1} Fatura Ayrıntıları tablosunda bulunmaması, {} of {},{} / {}, Assigned To,Atanan, Chat,Sohbet, -Completed By,Tarafından tamamlanmıştır, +Completed By,Tamamlayan, Conditions,Koşullar, County,Kontluk, Day of Week,Haftanın günü, -"Dear System Manager,","Sevgili Sistem Yöneticisi,", +"Dear System Manager,Sevgili Sistem Yöneticisi,", Default Value,Varsayılan Değer, Email Group,E-posta Grubu, Email Settings,E-posta Ayarları, -Email not sent to {0} (unsubscribed / disabled),Gönderilmez Email {0} (devre dışı / abonelikten), +Email not sent to {0} (unsubscribed / disabled),Gönderilmez Email {0} (devre dışı / üyelikten), Error Message,Hata mesajı, -Fieldtype,FIELDTYPE, +Fieldtype,AlanTipi, Help Articles,Yardım Makaleleri, -ID,İD, +ID,ID, Images,Görüntüler, -Import,İçe aktar, +Import,İçe Aktar, Language,Dil, Likes,Beğeniler, -Merge with existing,Mevcut Birleştirme, +Merge with existing,Varolan ile Birleştir, Office,Ofis, Orientation,Oryantasyon, Parent,Ana Kalem, @@ -3494,17 +3494,17 @@ Payment Failed,Ödeme başarısız, Percent,Yüzde, Permanent,kalıcı, Personal,Kişisel, -Plant,Tesis, +Plant,tesis, Post,Gönder, -Postal,Posta, +Postal,posta, Postal Code,Posta Kodu, Previous,Önceki, -Provider,sağlayan, -Read Only,Salt Okunur, -Recipient,Alıcı, +Provider,Sağlayıcı, +Read Only,Tuz Okunur, +Recipient,alıcı, Reviews,yorumlar, -Sender,Gönderici, -Shop,Mağaza, +Sender,Sevkiyatçı, +Shop,mağaza, Sign Up,Kaydol, Subsidiary,Yardımcı, There is some problem with the file url: {0},Dosya url ile bazı sorun var: {0}, @@ -3512,173 +3512,173 @@ There were errors while sending email. Please try again.,E-posta gönderirken ha Values Changed,Değerler Değişti, or,veya, 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 Girişi bir Açılış Girişidir", +Allocated amount cannot be greater than unadjusted amount,"Tahsis edilen tutarlar, düzeltilmemiş tutarlardan büyük olamaz", +Allocated amount cannot be negative,Tahsis edilen miktarlar 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", 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ı, +Import Successful,Başarılı İç Aktar, +Please save first,lütfen önce kaydet, +Price not found for item {0} in price list {1},{0} kaleminde {1} fiyat listelerinde fiyat bulunamadı, Warehouse Type,Depo türü, 'Date' is required,'Tarih' gerekli, Benefit,Yarar, -Budgets,Bütçeler, +Budgets,bütçeler, Bundle Qty,Paket Adet, -Company GSTIN,Şirket GSTIN, -Company field is required,Şirket alanı zorunludur, -Creating Dimensions...,Boyutların Oluşturulması ..., +Company GSTIN,şirket GSTIN, +Company field is required,Şirket alanı alanı, +Creating Dimensions...,Boyutların Yapılandırması ..., Duplicate entry against the item code {0} and manufacturer {1},{0} ürün koduna ve {1} üreticisine karşı yinelenen giriş, 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 Girişi Yap, -Quality Feedback,Kalite geribildirim, +Last carbon check date cannot be a future date,Son karbon tarihi kontrol kaynağı bir tarih olamaz, +Make Stock Entry,Stok Hareketi Yap, +Quality Feedback,Kalite geribildirimi, 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 {0}",""-", "#", ".", "/", "{{" Ve "}}" dışındaki Özel Karakterler, seri dizisine izin verilmez {0}", +Shift,Vardiya, +Show {0},Göster {0} , +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",""-", "#", ".", "/", "{{" ve "}}" Dış Özel Karakterler, dizi dizisine izin verilmez {0}", Target Details,Hedef Detayları, -{0} already has a Parent Procedure {1}.,{0} zaten bir {1} veli prosedürüne sahip., +{0} already has a Parent Procedure {1}.,{0} zaten bir {1} veli yapıya sahip., API,API, Annual,Yıllık, Approved,Onaylandı, -Change,Değişiklik, +Change,Değiştir, Contact Email,İletişim E-Posta, -Export Type,İhracat Şekli, -From Date,Tarihinden itibaren, +Export Type,Export Türü, +From Date,Baş. Tarihi, Group By,Gruplama Ölçütü, Importing {0} of {1},{1} içinden {0} içe aktar, Invalid URL,Geçersiz URL, -Landscape,peyzaj, +Landscape,Landscape, Last Sync On,Son Senkronizasyon Açık, -Naming Series,Seri Adlandırma, +Naming Series,Adlandırma Serisi, No data to export,Verilecek veri yok, -Portrait,Portre, +Portrait,Portrait, 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 İzlemeyi Göster, Video,Video, -Webhook Secret,Webhook Sırrı, -% Of Grand Total,Genel Toplamın% 'si, +Webhook Secret,Webhook Secret, +% Of Grand Total,Genel Toplamın % 'si, 'employee_field_value' and 'timestamp' are required.,'worker_field_value' ve 'zaman damgası' gereklidir., Company is a mandatory filter.,Şirket zorunlu bir filtredir., From Date is a mandatory filter.,Başlangıç Tarihi zorunlu bir filtredir., -From Time cannot be later than To Time for {0},"{0} için From Time , To Time'dan daha geç olamaz", +From Time cannot be later than To Time for {0},"{0} için From Time , To Time'dan daha geçilemez", To Date is a mandatory filter.,Bugüne kadar 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, -Account is mandatory to get payment entries,Ödeme girişleri almak için hesap zorunludur, -Account is not set for the dashboard chart {0},{0} gösterge tablosu grafiği için hesap ayarlanmadı, +A new appointment has been created for you with {0},{0} ile sizin için yeni bir randevu kaydı, +Account Value,hesap değeri, +Account is mandatory to get payment entries,Ödemeleri giriş almak için hesap yaptırımları, +Account is not set for the dashboard chart {0},{0} gösterge tablo grafiği için hesap ayarlanmadı, Account {0} does not belong to company {1},Hesap {0} Şirkete ait değil {1}, Account {0} does not exists in the dashboard chart {1},"{0} hesabı, {1} gösterge tablosunda yok", -Account: {0} is capital Work in progress and can not be updated by Journal Entry,Hesap: {0} 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, +Account: {0} is capital Work in progress and can not be updated by Journal Entry,Hesap: {0} sermayedir Devam etmekte olan iş ve Yevmiye Kaydı tarafından güncellenemez, +Account: {0} is not permitted under Payment Entry,Hesap: İzin verilmiyor altında {0} Ödeme Girişi, Accounting Dimension {0} is required for 'Balance Sheet' account {1}.,{1} 'Bilanço' hesabı için {0} Muhasebe Boyutu gerekiyor., Accounting Dimension {0} is required for 'Profit and Loss' account {1}.,{1} 'Kâr ve Zarar' hesabı için {0} Muhasebe Boyutu gereklidir., -Accounting Masters,Muhasebe Ustaları, +Accounting Masters,Muhasebe Ana Verileri, 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., Add Child,Alt öğe ekle, Add Loan Security,Kredi Güvenliği Ekleme, -Add Multiple,Birden fazla ekle, -Add Participants,Katılımcı ekle, -Add to Featured Item,Öne Çıkan Öğe Ekle, -Add your review,Yorum yaz, -Add/Edit Coupon Conditions,Kupon Koşulları Ekle / Düzenle, +Add Multiple,Çoklu Ekle, +Add Participants,Katılımcı Ekle, +Add to Featured Item,Öne Çıkan Öğeye Ekle, +Add your review,Yorumunuzu yazın, +Add/Edit Coupon Conditions,Kupon Koşullarını Ekle/Düzenle, Added to Featured Items,Öne Çıkan Öğelere Eklendi, Added {0} ({1}),Eklenen {0} ({1}), Address Line 1,Adres Satırı 1, -Addresses,Adresleri, +Addresses,Adresler, Admission End Date should be greater than Admission Start Date.,"Giriş Bitiş Tarihi, Giriş Başlangıç Tarihinden büyük olmalıdır.", Against Loan,Krediye Karşı, Against Loan:,Krediye Karşı:, -All,Herşey, -All bank transactions have been created,Tüm banka işlemleri oluşturuldu, +All,Tümü, +All bank transactions have been created,Tüm banka işlemleri işletme, All the depreciations has been booked,Tüm amortismanlar rezerve edildi, -Allocation Expired!,Tahsis Süresi Doldu!, +Allocation Expired!,Tahsis Süresi Bitti!, Allow Resetting Service Level Agreement from Support Settings.,Servis Seviyesi Sözleşmesini Destek Ayarlarından Sıfırlamaya İzin Ver., -Amount of {0} is required for Loan closure,Kredi kapanması için {0} tutarı gerekli, -Amount paid cannot be zero,Ödenen tutar sıfır olamaz, +Amount of {0} is required for Loan closure,Kredi çıkışı için {0} barındırma gerekli, +Amount paid cannot be zero,Ödenen tutarları sıfır olamaz, Applied Coupon Code,Uygulamalı Kupon Kodu, -Apply Coupon Code,kupon kodunu uygula, +Apply Coupon Code,kupon üretme uygula, Appointment Booking,Randevu Rezervasyonu, -"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}", +"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ğeri 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 {0}.,"Varlık Değer Ayarlaması, Varlığın satın alma tarihinden önce {0} yayınlanamaz .", -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", +Asset Value,Varlık Değeri, +Asset Value Adjustment cannot be posted before Asset's purchase date {0}.,"Varlık Değer Ayarlaması, Varlığın satınalma yollarından önce {0} yayınlanamaz .", +Asset {0} does not belongs to the custodian {1},"{0} varlık, {1} saklama deposuna ait değil", +Asset {0} does not belongs to the location {1},"{0} öğesi, {1} sunumu ait değil", At least one of the Applicable Modules should be selected,Uygulanabilir Modüllerden en az biri seçilmelidir, Atleast one asset has to be selected.,En az bir varlık seçilmelidir., -Attendance Marked,İşaretli Seyirci, +Attendance Marked,Katılım İşaretlendi, Attendance has been marked as per employee check-ins,"Katılım, çalışan başına check-in olarak işaretlenmiştir.", -Authentication Failed,Kimlik doğrulama başarısız oldu, +Authentication Failed,Kimlik doğrulaması başarısız oldu, Automatic Reconciliation,Otomatik Mutabakat, -Available For Use Date,Kullanım Tarihi, +Available For Use Date,Kullanıma Uygun Tarih, Available Stock,Mevcut Stok, "Available quantity is {0}, you need {1}","Kullanılabilir miktar {0}, {1}", -BOM 1,BOM 1, -BOM 2,BOM 2, -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", -Back to Home,Eve geri dön, +BOM 1,Ürün Ağacı 1, +BOM 2,Ürün Ağacı 2, +BOM Comparison Tool,Malzeme Listesi Karşılaştırma Aracı, +BOM recursion: {0} cannot be child of {1},"BOM özyineleme: {0}, {1} öğenin alt öğesi olamaz", +BOM recursion: {0} cannot be parent or child of {1},"BOM özyinelemesi: {0}, {1} ürünün ebeveyni veya çocuğu olamaz", +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 Details,Banka Detayları, Bank account '{0}' has been synchronized,'{0}' 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, +Batch no is required for batched item {0},Toplu iş {0} toplu öğe için gerekli, +Billing Date,Fatura Tarihi, +Billing Interval Count cannot be less than 1,Faturalama Aralığı Sayısı 1'den az olamaz, Blue,Mavi, -Book,Kitap, -Book Appointment,Kitap randevusu, +Book,Kaydet, +Book Appointment,Randevu Kaydı, Brand,Marka, Browse,Araştır, Call Connected,Arama Bağlandı, Call Disconnected,Çağrı Kesildi, Call Missed,Çağrı Cevapsız, Call Summary,Çağrı Özeti, -Call Summary Saved,Arama Özeti Kayıtlı, +Call Summary Saved,Çağrı Özeti Kaydedildi, Cancelled,İptal edildi, -Cannot Calculate Arrival Time as Driver Address is Missing.,Sürücü Adresi Eksik olduğundan Varış Saati Hesaplanamıyor., +Cannot Calculate Arrival Time as Driver Address is Missing.,Sürücü Adresi Eksiklerinden Varış Saati Hesaplanamıyor., Cannot Optimize Route as Driver Address is Missing.,Sürücü Adresi Eksik Olarak Rotayı Optimize Etme, -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 complete task {0} as its dependant task {1} are not ccompleted / cancelled.,{0} görevi tamamlanamıyor çünkü görevli 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.", -"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", +Cannot find a matching Item. Please select some other value for {0}.,Eşleşen bir öğe bulunamıyor. İç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} bilgisindeki {0} öğe için {2} 'den fazla öğe fazla faturalandırılamıyor. Fazla faturalandırmaya izin vermek için, lütfen Hesap Yapılandırmalarında ödenenek ayarını yapınız.", +"Capacity Planning Error, planned start time can not be same as end time","Kapasite Planlama Hatası, patlama başlangıç zamanı bitiş zamanı ile aynı olamaz", Categories,Kategoriler, Changes in {0},{0} '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, +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 formu 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} varlık varlığı ve {1} satın alma belgesi eşleşmiyor., +Company,Şirket, +Company of asset {0} and purchase document {1} doesn't matches.,{0} varlık ve {1} satınalma 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, +Compare List function takes on list arguments,Yükleme listesi işlevlerini liste değişkenlerini alır, +Complete,Tamamla, 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'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, Contact Seller,Satıcıyla iletişime geç, -Continue,Devam etmek, +Continue,Devam et, 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 yarat, -Create New Lead,Yeni Müşteri Adayı Yarat, +Create New Contact,Yeni Kişi Oluştur, +Create New Lead,Yeni Müşteri Adayı Oluştur, 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 ..., @@ -3686,10 +3686,10 @@ Creating bank entries...,Banka girişi oluşturuluyor ..., Credit limit is already defined for the Company {0},{0} Şirketi için zaten kredi limiti tanımlanmış, Ctrl + Enter to submit,Göndermek için Ctrl + Enter, Ctrl+Enter to submit,Ctrl + Göndermek için Enter, -Currency,Para birimi, +Currency,Para Birimi, Current Status,Şu anki durum, Customer PO,Müşteri PO, -Customize,Özelleştirme, +Customize,Özelleştir, Daily,Günlük, Date,Tarih, Date Range,Tarih aralığı, @@ -3700,176 +3700,176 @@ Define coupon codes.,Kupon kodlarını tanımlayın., Delayed Days,Gecikmeli Günler, Delete,Sil, Delivered Quantity,Teslim edilen miktar, -Delivery Notes,Teslimat notları, +Delivery Notes,İrsaliyeler, Depreciated Amount,Amortisman Tutarı, Description,Açıklama, Designation,Atama, Difference Value,Fark Değeri, 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, +Disbursement and Repayment,Masraf ve Geri Ödeme, +Distance cannot be greater than 4000 kms,Mesafe 4000 km'den büyük olamaz, Do you want to submit the material request,Malzeme talebini göndermek ister misiniz, -Doctype,DOCTYPE, +Doctype,BelgeTipi, Document {0} successfully uncleared,{0} dokümanı başarıyla temizlendi, Download Template,Şablonu İndir, -Dr,Dr, +Dr,Borç, Due Date,Bitiş tarihi, Duplicate,Kopyala, -Duplicate Project with Tasks,Görevlerle Çoğaltılmış Proje, +Duplicate Project with Tasks,Projeyi Görev ile Çoğalt, Duplicate project has been created,Yinelenen proje oluşturuldu, -E-Way Bill JSON can only be generated from a submitted document,E-Way Bill JSON yalnızca gönderilen bir belgeden oluşturulabilir, -E-Way Bill JSON can only be generated from submitted document,e-Way Bill JSON yalnızca gönderilen dokümandan oluşturulabilir, +E-Way Bill JSON can only be generated from a submitted document,E-Way Bill JSON yalnızca kullandıkları bir belgeden oluşturulabilir, +E-Way Bill JSON can only be generated from submitted document,e-Way Bill JSON yalnızca kullanımlarından oluşturulabilir, E-Way Bill JSON cannot be generated for Sales Return as of now,e-Way Bill JSON şu andan itibaren Satış İadesi için oluşturulamıyor, -ERPNext could not find any matching payment entry,ERPNext eşleşen bir ödeme girişi bulamadı, +ERPNext could not find any matching payment entry,ERPNext'e bir ödeme girişi bulunamadı, Earliest Age,En Erken Yaş, -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,EPosta, +Edit Details,Detayları düzenlemek, +Edit Profile,profil düzenleme, +Either GST Transporter ID or Vehicle No is required if Mode of Transport is Road,Ulaştırma Modu Yol ise GST Nakliyeci Kimliği ya da Araç No mevcuttur., +Email,E-posta, 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 ID is linked with another instructor,Çalışan kişinin başka bir eğitmenle bağlantısı, Employee Tax and Benefits,Çalışan Vergi ve Yardımları, Employee is required while issuing Asset {0},{0} Varlığı verilirken çalışan gerekli, -Employee {0} does not belongs to the company {1},{0} çalışanı {1} şirketine ait değil, +Employee {0} does not belongs to the company {1},{0} çalışanı {1} ortamı ait değil, Enable Auto Re-Order,Otomatik Yeniden Siparişi Etkinleştir, End Date of Agreement can't be less than today.,Anlaşmanın Bitiş Tarihi bugünden az olamaz., End Time,Bitiş Zamanı, Energy Point Leaderboard,Enerji Noktası Lider Tablosu, -Enter API key in Google Settings.,Google Ayarları’na API anahtarını girin., +Enter API key in Google Settings.,Google Configuration'na API anahtarını girin., Enter Supplier,Tedarikçi Girin, -Enter Value,Değeri girin, +Enter Value,Değeri Girin, Entity Type,Varlık Türü, Error,Hata, Error in Exotel incoming call,Exotel gelen aramada hata, -Error: {0} is mandatory field,Hata: {0} zorunlu alandır, +Error: {0} is mandatory field,Hata: {0} zorunlu olarak alandır, Event Link,Etkinlik Bağlantısı, -Exception occurred while reconciling {0},{0} uzlaştırırken kural dışı durum oluştu, -Expected and Discharge dates cannot be less than Admission Schedule date,Beklenen ve Deşarj tarihleri Kabul Zamanlama tarihinden daha az olamaz, +Exception occurred while reconciling {0},{0} uzlaştırırken kural dışı durum oluşur, +Expected and Discharge dates cannot be less than Admission Schedule date,Beklenen ve Deşarj süreleri Kabul Zamanlama hatları daha az olamaz, Expire Allocation,Tahsisin Sona Ermesi, -Expired,Süresi Doldu, -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, +Expired,Süresi Bitti, +Export,Dışarı Aktar, +Export not allowed. You need {0} role to export.,İhracata izin verilmiyor. Vermek {0} rolü gerekir., +Failed to add Domain,Etki alanı eklenemedi, Fetch Items from Warehouse,Depodan Eşya Al, -Fetching...,Getiriliyor ..., +Fetching...,Getiriliyor..., Field,Alan, File Manager,Dosya Yöneticisi, Filters,Filtreler, Finding linked payments,Bağlantılı ödemeleri bulma, -Fleet Management,Filo yönetimi, -Following fields are mandatory to create address:,Adres oluşturmak için aşağıdaki alanların doldurulması zorunludur:, +Fleet Management,Filo Yönetimi, +Following fields are mandatory to create address:,Adres oluşturmak için aşağıdaki muhafazaların doldurulması:, 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", -For operation {0}: Quantity ({1}) can not be greter than pending quantity({2}),"{0} işlemi için: Miktar ({1}), beklemedeki miktardan ({2}) daha emin olamaz", -For quantity {0} should not be greater than work order quantity {1},{0} miktarı için {1} iş emri miktarından büyük olmamalıdır, -Free item not set in the pricing rule {0},{0} fiyatlandırma kuralında ayarlanmamış ücretsiz öğe, +"For item {0} at row {1}, count of serial numbers does not match with the picked quantity","{1} bilgisindeki {0} öğe için, seri numaralarının sayıları toplanan miktarla eşleşmiyor", +For operation {0}: Quantity ({1}) can not be greter than pending quantity({2}),"{0} işlemi için: Miktar ({1}), beklemedeki miktarın ({2}) daha emin olunamaz", +For quantity {0} should not be greater than work order quantity {1},{0} miktarı için {1} iş emri miktarından büyük kısıtlama, +Free item not set in the pricing rule {0},{0} fiyatlandırma düzenlemesinde ayarlanmamış ücretsiz öğe, From Date and To Date are Mandatory,Başlangıç Tarihi ve Bitiş Tarihi Zorunludur, -From employee is required while receiving Asset {0} to a target location,{0} Varlığını hedef konuma alırken çalışandan gerekli, +From employee is required while receiving Asset {0} to a target location,{0} Varlığını hedef alırken çalışmaktan gerekli, Fuel Expense,Yakıt Gideri, -Future Payment Amount,Gelecekteki Ödeme Tutarı, -Future Payment Ref,Gelecekteki Ödeme Ref, +Future Payment Amount,Devamındaki Ödeme Tutarı, +Future Payment Ref,Devamındaki Ödeme Ref, Future Payments,Gelecekteki Ödemeler, GST HSN Code does not exist for one or more items,GST HSN Kodu bir veya daha fazla öğe için mevcut değil, -Generate E-Way Bill JSON,E-Way Bill JSON oluşturun, -Get Items,Ürünleri alın, -Get Outstanding Documents,Üstün Belgeler Alın, +Generate E-Way Bill JSON,E-İrsaliye JSON oluşturun, +Get Items,Ürünleri Getir, +Get Outstanding Documents,Kapanmamış/Ödenmemiş Belgeleri Getir, Goal,Hedef, Greater Than Amount,Tutardan Büyük, Green,Yeşil, -Group,grup, -Group By Customer,Müşteriye Göre Grupla, -Group By Supplier,Tedarikçiye Göre Grupla, -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, +Group,Grup, +Group By Customer,Müşteriye göre Grupla, +Group By Supplier,Tedarikçiye göre Grupla, +Group Node,Grup Düğümü, +Group Warehouses cannot be used in transactions. Please change the value of {0},Grup Depoları işlemlerinde taşıma. Lütfen {0} değerini değiştirin, Help,Yardım, -Help Article,Yardım Madde, -"Helps you keep tracks of Contracts based on Supplier, Customer and Employee","Tedarikçi, Müşteri ve Çalışana Dayalı Sözleşmeleri takip etmenize yardımcı olur", -Helps you manage appointments with your leads,Müşteri adaylarıyla randevularınızı yönetmenize yardımcı olur, +Help Article,Yardım Maddesi, +"Helps you keep tracks of Contracts based on Supplier, Customer and Employee","Tedarikçi, Müşteri ve Çalışana Dayalı Sözleşmeleri takip görevlileri yardımcı olur", +Helps you manage appointments with your leads,Müşteri adaylarıyla randevularınızı yöneticinize yardımcı olur, Home,Ana Sayfa, IBAN is not valid,IBAN geçerli değil, Import Data from CSV / Excel files.,CSV / Excel dosyalarından Veri Aktar., -In Progress,Devam etmekte, +In Progress,Devam ediyor, Incoming call from {0},{0} den gelen arama, Incorrect Warehouse,Yanlış Depo, -Intermediate,Orta düzey, +Intermediate,Orta seviye, Invalid Barcode. There is no Item attached to this barcode.,Geçersiz Barkod Bu barkoda ekli bir ürün yok., Invalid credentials,Geçersiz kimlik bilgileri, -Invite as User,Kullanıcı olarak davet, -Issue Priority.,Öncelik Verme., +Invite as User,kullanıcı olarak Davet et, +Issue Priority.,Sorun Önceliği., Issue Type.,Sorun Tipi., -"It seems that there is an issue with the server's stripe configuration. In case of failure, the amount will get refunded to your account.","Sunucunun şerit yapılandırmasında bir sorun var gibi görünüyor. Arıza durumunda, tutar hesabınıza iade edilir.", +"It seems that there is an issue with the server's stripe configuration. In case of failure, the amount will get refunded to your account.","Sunucunun şerit çevresinde bir sorun var gibi görünüyor. Arıza durumunda, tutarları iade edilir.", Item Reported,Öğe Bildirildi, -Item listing removed,Öğe listesi kaldırıldı, +Item listing removed,öğe listesi kaldırıldı, Item quantity can not be zero,Ürün miktarı sıfır olamaz, Item taxes updated,Öğe vergileri güncellendi, -Item {0}: {1} qty produced. ,Öğe {0}: {1} adet üretildi., -Joining Date can not be greater than Leaving Date,Katılım Tarihi Ayrılma Tarihinden daha büyük olamaz, +Item {0}: {1} qty produced. ,Öğe {0}: {1} adet oluşturma., +Joining Date can not be greater than Leaving Date,Katılım Tarihi Ayrılık Tarihinden daha büyük olamaz, Lab Test Item {0} already exist,Laboratuar Test Öğesi {0} zaten var, 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 Yapraklar, +Latest Age,En Son Yaş, +Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay,"İzin projesi, {0} izin tahsisleri ile bağlantılı. İzinsiz yapılması, izinsiz izinsiz yapılamaz", +Leaves Taken,Alınan İzin, 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 Amount exceeds maximum loan amount of {0} as per proposed securities,"Kredi Tutarı, çekilen 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 Masrafı, Loan Processes,Kredi Süreçleri, Loan Security,Kredi Güvenliği, Loan Security Pledge,Kredi Güvenliği Taahhüdü, -Loan Security Pledge Created : {0},Kredi Güvenliği Rehin Yaratıldı: {0}, +Loan Security Pledge Created : {0},Kredi Güvenliği Rehin Oluşturuldu: {0}, Loan Security Price,Kredi Güvenliği Fiyatı, Loan Security Price overlapping with {0},{0} ile örtüşen Kredi Güvenliği Fiyatı, 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 is mandatory,Kredi zorunludur, +Loan amount cannot be greater than {0},Kredi birimleri {0} 'dan fazla olamaz, +Loan is mandatory,Kredi ağları, 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,Kayıt Girdisi Yap, -Make Purchase Invoice,Satın Alma Faturası Oluştur, +Log Type is required for check-ins falling in the shift: {0}.,Vardiyaya giriş 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önderiyor. içini görmek için isteyin., +Make Journal Entry,Yevmiye Kaydı Yap, +Make Purchase Invoice,Satınalma Faturası Oluşturma, 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ı!, -Message,İleti, +Message,Mesaj, Missing Values Required,Gerekli Eksik Değerler, -Mobile No,Mobil No, -Mobile Number,Cep numarası, +Mobile No,Cep No, +Mobile Number,Cep Numarası, Month,Ay, -Name,İsim, +Name,Adı, Near you,Sana yakın, -Net Profit/Loss,Net kâr (zarar, +Net Profit/Loss,Net Kar/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ı, +New release date should be in the future,Yeni çıkış tarihi 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 Account matched these filters: {},Bu filtrelerle doldurma Hesap yok: {}, +No Employee found for the given employee field value. '{}': {},verilen çalışanın saha değeri için çalışan bulunamadı. '{}': {}, 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ı, No description,açıklama yok, -No issue has been raised by the caller.,Arayan tarafından herhangi bir sorun gündeme gelmedi., -No items to publish,Yayınlanacak öğe yok, -No outstanding invoices found,Ödenmemiş fatura bulunamadı, -No outstanding invoices found for the {0} {1} which qualify the filters you have specified.,Belirttiğiniz filtrelere uygun {0} {1} için ödenmemiş fatura bulunamadı., -No outstanding invoices require exchange rate revaluation,"Ödenmemiş faturalar, döviz kuru yeniden değerlemesi gerektirmez", +No issue has been raised by the caller.,Arayan tarafından herhangi bir sorun beklenmiyor., +No items to publish,Yayın öğesi yok edilecek, +No outstanding invoices found,Ödenmemiş fatura alınamıyor, +No outstanding invoices found for the {0} {1} which qualify the filters you have specified.,Belirttiğiniz filtrelere uygun {0} {1} için ödenmemiş fatura bulunamıyor., +No outstanding invoices require exchange rate revaluation,"Ödenmemiş faturalar, döviz kuru yeniden değerlemesi vergileri", No reviews yet,Henüz değerlendirme yok, No views yet,Henüz görüntülenme yok, Non stock items,Stokta olmayan ürünler, -Not Allowed,İzin Değil, -Not allowed to create accounting dimension for {0},{0} için muhasebe boyutu oluşturmaya izin verilmiyor, +Not Allowed,İzin verilmedi, +Not allowed to create accounting dimension for {0},{0} için hesaplama boyutu oluşturmaya izin verilmiyor, Not permitted. Please disable the Lab Test Template,İzin verilmedi. Lütfen Laboratuvar Test Şablonunu devre dışı bırakın, -Note,Not, +Note,Olumsuz, Notes: ,Notlar:, On Converting Opportunity,Fırsat Dönüştürme Üzerine, On Purchase Order Submission,Satınalma Siparişi Gönderme İşleminde, @@ -3877,200 +3877,200 @@ On Sales Order Submission,Satış Siparişi Gönderme, On Task Completion,Görev Tamamlandıktan Sonra, On {0} Creation,{0} Yaratılışında, Only .csv and .xlsx files are supported currently,Şu anda yalnızca .csv ve .xlsx dosyaları desteklenmektedir, -Only expired allocation can be cancelled,Yalnızca süresi dolmuş tahsis iptal edilebilir, -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", +Only expired allocation can be cancelled,Yalnızca süresi dolmuş tahsisler iptal edilebilir, +Only users with the {0} role can create backdated leave applications,"Yalnızca {0} rolüne sahip kullanıcılar, geriye dönük uygulamalara izin vermek", Open,Açık, Open Contact,Kişiyi Aç, -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ı'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, -Parent Company must be a group company,Ana Şirket bir grup şirketi olmalıdır, +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 İşletme Maliyeti, +Order Amount,Sipariş Tutarı, +Page {0} of {1},{1} {0} Sayfası, +Paid amount cannot be less than {0},Ücretli tutarlar {0} 'dan az olamaz, +Parent Company must be a group company,Ana Şirket bir grup şirket 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, +Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically,Parola koruma hapları veya kısa süreler tire içeremez. Format otomatik olarak yeniden yapılandıracak, Patient History,Hasta Öyküsü, -Pause,durma, -Pay,Ödeme, +Pause,Durdur, +Pay,Ödeme yap, Payment Document Type,Ödeme Belgesi Türü, Payment Name,Ödeme Adı, -Penalty Amount,Ceza Miktarı, +Penalty Amount,Ceza Tutarı, Pending,Bekliyor, -Performance,performans, +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., +Perpetual inventory required for the company {0} to view this report.,{0} şirketinin bu kanıtı görüntülemesi için sürekli envanter gerekiyor., Phone,Telefon, -Pick List,Seçim listesi, +Pick List,Pick List, 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, +Plaid transactions sync error,Ekose işlemleri arşivleme hatası, +Please check the error log for details about the import errors,Lütfen ice aktarım hatalarıyla ilgili ayrıntılar için hata gününü kontrol edin, Please create DATEV Settings for Company {}.,Lütfen {} Şirketi için DATEV Ayarları oluşturun., -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'den fazla öğe oluşturmayın, +Please create adjustment Journal Entry for amount {0} ,Lütfen {0} için Yevmiye Kaydı düzenlemesini 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 enter Difference Account or set default Stock Adjustment Account for company {0},Lütfen Fark Hesabı girin veya {0} şirketi için varsayılan Stok Ayarlama Hesabını 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, +Please enter Item Code to get item taxes,Ürün vergilerini almak için lütfen Ürün Kodunu giriniz, Please enter Warehouse and Date,Lütfen Depo ve Tarihi giriniz, -Please enter the designation,Lütfen belirtime giriniz, +Please enter the designation,Lütfen belirti 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 Template Type to download template,Şablonu indirmek için lütfen Şablon Türü'nü 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 login as a Marketplace User to report this item.,Bu öğeyi incelemek için lütfen bir Marketplace Kullanıcısı olarak giriş yapın., +Please select Template Type to download template,Şablonu indirmek için lütfen Şablon Türü'nü 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üşteriyi 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 Teslimat Notu 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 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öntemini seçin. şerit, '{0}' para birimini 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 UOM'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'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 a Supplier against the Items to be considered in the Purchase Order.,Lütfen Satınalma Siparişinde dikkate alın Öğelere karşı bir denetleyici ayarlayın., +Please set account heads in GST Settings for Compnay {0},Lütfen {0} Şirket 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ğini belirlemiştir, +Please set default UOM in Stock Settings,Lütfen Stok Ayarları'ndan varsayılan Birimi ayarı, +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 Depoya göre ayarlayın., +Please set up the Campaign Schedule in the Campaign {0},Lütfen {0} Kampanyasında Kampanyasında Saatlerini 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,customer -Please setup a default bank account for company {0},Lütfen {0} şirketi için varsayılan bir banka hesabı kurun, +Please set {0},Lütfen {0} ayarlayın, +Please setup a default bank account for company {0},Lütfen {0} şirketi için genel bir banka hesabı kurun, Please specify,Lütfen belirtiniz, -Please specify a {0},Lütfen bir {0} belirtin,lead +Please specify a {0},Lütfen bir {0} kullanmak, Pledge Status,Rehin Durumu, Pledge Time,Rehin Zamanı, 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., +Priority {0} has been repeated.,{0} önceliği tekrarlandı., Processing XML Files,XML Dosyalarını İşleme, Profitability,Karlılık, Project,Proje, -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., +Proposed Pledges are mandatory for secured Loans,Teminatlı Krediler için verilen rehinlerin dağıtımı hizmetleri, +Provide the academic year and set the starting and ending date.,Akademik yıl dönümü ve başlangıç ve bitiş tarihini ayarlayın., Public token is missing for this bank,Bu banka için genel belirteç eksik, -Publish,yayınlamak, +Publish,Yayınla, Publish 1 Item,1 Öğe Yayınla, Publish Items,Öğeleri Yayınla, -Publish More Items,Daha Fazla Ürün Yayınla, +Publish More Items,Daha Fazla Öge Yayınla, Publish Your First Items,İlk Ürününüzü Yayınlayın, -Publish {0} Items,{0} Öğeyi Yayımla, +Publish {0} Items,{0} Öğeyi Yayınla, Published Items,Yayınlanan Öğeler, -Purchase Invoice cannot be made against an existing asset {0},Mevcut bir öğeye karşı {0} satın alma faturası yapılamaz, +Purchase Invoice cannot be made against an existing asset {0},Mevcut bir öğeye karşı {0} satınalma faturası yapılamaz, Purchase Invoices,Satınalma Faturaları, -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'un etkinleştirildiği bir Öğe yoktur.", -Purchase Return,Satın alma iadesi, +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 İadesi, 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, +Qty or Amount is mandatroy for loan security,Miktar veya Miktar kredi güvenliği için zorunlu, +Quality Inspection required for Item {0} to submit,{0} Ürününün gönderilmesi için Kalite Kontrol gerekli, Quantity to Manufacture,Üretim Miktarı, Quantity to Manufacture can not be zero for the operation {0},{0} işlemi için Üretim Miktarı sıfır olamaz, Quarterly,Üç ayda bir, -Queued,Sıraya alınmış, -Quick Entry,Hızlı Girişi, +Queued,Sıraya alındı, +Quick Entry,Hızlı Giriş, Quiz {0} does not exist,{0} yarışması mevcut değil, Quotation Amount,Teklif Tutarı, Rate or Discount is required for the price discount.,Fiyat indirimi için Oran veya İndirim gereklidir., Reason,Nedeni, Reconcile Entries,Mutabakat Girişleri, -Reconcile this account,Bu hesabı mutabık kılma, +Reconcile this account,Bu hesap mutabık kılma, Reconciled,Mutabık, Recruitment,İşe Alım, Red,Kırmızı, -Refreshing,Güncelleniyor, -Release date must be in the future,Çıkış tarihi gelecekte olmalı, +Refreshing,Yenileniyor, +Release date must be in the future,Çıkış tarihi olmalı, Relieving Date must be greater than or equal to Date of Joining,"Rahatlama Tarihi, Katılım Tarihinden büyük veya ona eşit olmalıdır", Rename,Yeniden adlandır, -Rename Not Allowed,Yeniden Adlandır İzin Verilmez, -Repayment Method is mandatory for term loans,Vadeli krediler için geri ödeme yöntemi zorunludur, -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, +Rename Not Allowed,Yeniden Adlandırmaya İzin Verilmiyor, +Repayment Method is mandatory for term loans,Vadeli krediler için geri ödeme yöntemleri, +Repayment Start Date is mandatory for term loans,Vadeli krediler için geri ödeme başlangıç tarihi, +Report Item,Öğeyi Bildir, +Report this Item,Bu öğeyi bildirin, 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çirmek, -Room,oda, +Return amount cannot be greater unclaimed amount,Garanti gereksinimleri olmayan tutarlarından fazla olamaz, +Review,Gözden geçir, +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., -Row #{0}: Cannot delete item {1} which has already been delivered,Satır # {0}: Önceden yayınlanmış {1} öğesi silinemiyor, -Row #{0}: Cannot delete item {1} which has already been received,Satır # {0}: Önceden alınmış olan {1} öğesi silinemiyor, -Row #{0}: Cannot delete item {1} which has work order assigned to it.,Satır # {0}: İş emri atanmış {1} öğesi silinemez., +Row #{0}: Cannot delete item {1} which has already been delivered,Satır # {0}: geçmişte yayınlanmış {1} öğesi silinemiyor, +Row #{0}: Cannot delete item {1} which has already been received,Satır # {0}: geçmişte alınmış olan {1} öğesi silinemiyor, +Row #{0}: Cannot delete item {1} which has work order assigned to it.,Satır # {0}: İş emri atanmış {1} öğe silinemez., 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}: Payment document is required to complete the transaction,Satır # {0}: İşlemi tamamlamak için ödeme belgesi gereklidir, +Row #{0}: Cost Center {1} does not belong to company {2},"Satır # {0}: Maliyet Merkezi {1}, {2} işletme 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 halindeyken {4} Job Card ile güncelleyin., +Row #{0}: Payment document is required to complete the transaction,Satır # {0}: İşlemi gizlemek 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}: 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, -Row {0}: Invalid Item Tax Template for item {1},Satır {0}: {1} öğesi için geçersiz Öğe Vergi Şablonu, -Row {0}: Quantity not available for {4} in warehouse {1} at posting time of the entry ({2} {3}),Satır {0}: Girişin kaydedildiği tarihte {1} deposundaki {4} miktarı kullanılabilir değil ({2} {3}), -Row {0}: user has not applied the rule {1} on the item {2},Satır {0}: kullanıcı {2} öğesine {1} kuralını uygulamadı, +Row {0}: Invalid Item Tax Template for item {1},Satır {0}: {1} öğe için geçersiz Öğe Vergi Şablonu, +Row {0}: Quantity not available for {4} in warehouse {1} at posting time of the entry ({2} {3}),Satır {0}: Girişin kaydettiği anında {1}haftasındaki {4} hacmi kullanılabilir değil ({2} {3}), +Row {0}: user has not applied the rule {1} on the item {2},Satır {0}: kullanıcı {2} işlemi {1} kuralını uygulamadı, Row {0}:Sibling Date of Birth cannot be greater than today.,Satır {0}: Kardeş Doğum Tarihi bugünden daha büyük olamaz., Row({0}): {1} is already discounted in {2},"Satır ({0}): {1}, {2} için zaten indirimli", -Rows Added in {0},{0} içine eklenen satırlar, -Rows Removed in {0},{0} konumundaki Satırlar Kaldırıldı, +Rows Added in {0},{0} içindeki satırlar, +Rows Removed in {0},{0} sonuçları Satırlar Kaldırıldı, Sanctioned Amount limit crossed for {0} {1},{0} {1} için Onaylanan Tutar sınırı aşıldı, -Sanctioned Loan Amount already exists for {0} against company {1},{1} şirketine karşı {0} için Onaylanan Kredi Tutarı zaten var, +Sanctioned Loan Amount already exists for {0} against company {1},{1} yerleştirme karşı {0} için Onaylanan Kredi Tutarı zaten var, Save,Kaydet, -Save Item,Öğe Kaydet, +Save Item,Öğeyi Kaydet, Saved Items,Kaydedilen Öğeler, Search Items ...,Öğeleri Ara ..., -Search for a payment,Ödeme arayın, -Search for anything ...,Bir şey arayın ..., -Search results for,için arama sonuçları, +Search for a payment,Ödeme Ara, +Search for anything ...,Bir şey arayın..., +Search results for,Arama sonuçları için, Select All,Tümünü Seç, Select Difference Account,Fark Hesabı Seç, -Select a Default Priority.,Varsayılan bir öncelik seçin., +Select a Default Priority.,Varsayılan bir öğe seçin., Select a company,Bir şirket seçin, -Select finance book for the item {0} at row {1},{1} satırındaki {0} maddesi için finansman kitabını seçin, +Select finance book for the item {0} at row {1},{1} bilgisindeki {0} madde için pazarlama kitabını seçin, Select only one Priority as Default.,Varsayılan olarak sadece bir Öncelik seçin., -Seller Information,Satıcı bilgisi, +Seller Information,Satıcı Bilgisi, Send,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ı, +Send a message,Bir mesaj geçti, +Sending,Gönderiliyor, +Sends Mails to lead or contact based on a Campaign schedule,Bir Kampanya planına göre Adaya veya İlgili kişiye Postaları gönderir, 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,Seriler, -Server Error,Server hatası, -Service Level Agreement has been changed to {0}.,Hizmet Seviyesi Sözleşmesi {0} olarak değiştirildi., +Serial no(s) required for serialized item {0},{0} serileştirilmiş öğe için seri numarası gerekli, +Series,Kayıt Serisi, +Server Error,Sunucu Hatası, +Service Level Agreement has been changed to {0}.,Hizmet Seviyesi Sözleşmesi {0} olarak kaldırıldı., 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., Set,Ayarla, -Set Meta Tags,Meta Etiketlerini Ayarla, -Set {0} in company {1},{1} şirketinde {0} ayarlayın, +Set Meta Tags,Meta Etiketleri Ayarla, +Set {0} in company {1},{1} şirketinde {0} Ayarla, Setup,Kurulum, Setup Wizard,Kurulum Sihirbazı, Shift Management,Vardiya Yönetimi, Show Future Payments,Gelecekteki Ödemeleri Göster, -Show Linked Delivery Notes,Bağlantılı Teslimat Notlarını Göster, -Show Sales Person,Satış Görevlisini Göster, -Show Stock Ageing Data,Stok Yaşlanma Verilerini Göster, -Show Warehouse-wise Stock,Depo-Stok Stoğunu Göster, +Show Linked Delivery Notes,Bağlı İrsaliyeleri Göster, +Show Sales Person,Satış Elemanını Göster, +Show Stock Ageing Data,Stok Yaşlandırma Verisini Göster, +Show Warehouse-wise Stock,Depo-Stok Stokunu Göster, Size,Boyut, -Something went wrong while evaluating the quiz.,Sınavı değerlendirirken bir şeyler ters gitti., -Sr,Sr, +Something went wrong while evaluating the quiz.,Sınavı değerlendirirken bir şey ters gitti., +Sr,Kıdemli, Start,Başlangıç, -Start Date cannot be before the current date,"Başlangıç Tarihi, geçerli tarihten önce olamaz", +Start Date cannot be before the current date,"Başlangıç Tarihi, geçerli karşılaştırma önce olamaz", Start Time,Başlangıç Zamanı, -Status,Durum, +Status,Durumu, Status must be Cancelled or Completed,Durum İptal Edilmeli veya Tamamlandı, -Stock Balance Report,Borsa Dengesi Raporu, -Stock Entry has been already created against this Pick List,Bu Seçim Listesi'ne karşı Stok Girişi zaten oluşturuldu, +Stock Balance Report,Stok Bakiyesi Raporu, +Stock Entry has been already created against this Pick List,Bu Seçim Listesine karşı Stok Hareketi zaten oluşturulmuş, 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, +Student with email {0} does not exist,{0} e-posta gönderme sahibi öğrenci mevcut değil, +Submit Review,İncelemeyi Gönder, +Submitted,İşlendi, Supplier Addresses And Contacts,Tedarikçi Adresler ve İletişim, Synchronize this account,Bu hesabı senkronize et, Tag,Etiket, @@ -4078,7 +4078,7 @@ Target Location is required while receiving Asset {0} from an employee,Bir çal Target Location is required while transferring Asset {0},{0} Varlığı aktarılırken Hedef Konum gerekli, Target Location or To Employee is required while receiving Asset {0},{0} Varlığı alınırken Hedef Yer veya Çalışan için gerekli, Task's {0} End Date cannot be after Project's End Date.,"Görev {0} Bitiş Tarihi, Projenin Bitiş Tarihinden sonra olamaz.", -Task's {0} Start Date cannot be after Project's End Date.,"Görev {0} Başlangıç Tarihi, Projenin Bitiş Tarihinden sonra olamaz.", +Task's {0} Start Date cannot be after Project's End Date.,"Görev {0} Başlangıç Tarihi, Görev Bitiş Tarihinden sonra olamaz.", Tax Account not specified for Shopify Tax {0},Shopify Vergisi için Vergi Hesabı belirtilmedi {0}, Tax Total,Vergi Toplamı, Template,Şablon, @@ -4086,109 +4086,109 @@ The Campaign '{0}' already exists for the {1} '{2}',"'{0}' Kampanyası, 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, -The following serial numbers were created:

{0},Aşağıdaki seri numaraları oluşturuldu:

{0}, +The following serial numbers were created:

{0},Aşağıdaki seri numaraları verilmiştir:

{0}, The parent account {0} does not exists in the uploaded template,Yüklenen şablonda {0} üst hesabı yok, The question cannot be duplicate,Soru kopyalanamaz, The selected payment entry should be linked with a creditor bank transaction,Seçilen ödeme girişi bir alacaklı banka işlemi ile bağlantılı olmalıdır, -The selected payment entry should be linked with a debtor bank transaction,Seçilen ödeme girişi borçlu banka işlemiyle ilişkilendirilmelidir, -The total allocated amount ({0}) is greated than the paid amount ({1}).,"Tahsis edilen toplam tutar ({0}), ödenen tutardan ({1}) elde edilir.", +The selected payment entry should be linked with a debtor bank transaction,Seçilen ödeme girişi borçlu banka işlemiyle tüketilmelidir, +The total allocated amount ({0}) is greated than the paid amount ({1}).,"Tahsis edilen tutarlar ({0}), kullandıkları tutarlardan ({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'i banka hesaplarınızla entegre eden herhangi bir harici hizmetle kaybolacaktır. 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}, -This page keeps track of items you want to buy from sellers.,Bu sayfa satıcılardan satın almak istediğiniz ürünleri takip eder., -This page keeps track of your items in which buyers have showed some interest.,"Bu sayfa, alıcıların ilgi gösterdiği öğelerin kaydını tutar.", +This page keeps track of items you want to buy from sellers.,Bu sayfa satıcılardan satınalmak istediğiniz ürünleri takip eder., +This page keeps track of your items in which buyers have showed some interest.,"Bu sayfa, alıcıların ilgi gösterdiği nesnelerin telif hakları saklıdır.", 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 date needs to be before from date,Bugüne kadar tarihten önce olması gerekiyor, +"To allow over receipt / delivery, update ""Over Receipt/Delivery Allowance"" in Stock Settings or the Item.","alınan / teslimin aşırıya alınmasına izin vermek için, Stok Ayarları veya Öğedeki "Aşırı Alındı / Teslimat Ödeneği" ni güncelleyin.", +To date needs to be before from date,Bugüne kadar bu konuda daha önce olması gerekiyor, Total,Toplam, Total Early Exits,Toplam Erken Çıkış, Total Late Entries,Toplam Geç Girişler, -Total Payment Request amount cannot be greater than {0} amount,Toplam Ödeme İsteği tutarı {0} tutarından büyük olamaz, -Total payments amount can't be greater than {},Toplam ödeme tutarı {} den fazla olamaz, +Total Payment Request amount cannot be greater than {0} amount,Toplam Ödeme isteğini barındırmak {0} büyük olamaz, +Total payments amount can't be greater than {},Toplam ödeme kümeleri {} den fazla olamaz, Totals,Toplamlar, Training Event:,Eğitim Etkinliği:, Transactions already retreived from the statement,İşlemler zaten ifadeden alındı, Transfer Material to Supplier,Tedarikçi Malzeme Transferi, -Transport Receipt No and Date are mandatory for your chosen Mode of Transport,Seçtiğiniz Ulaşım Modu için Nakliye Fişi No ve Tarihi zorunludur, +Transport Receipt No and Date are mandatory for your chosen Mode of Transport,Seçtiğiniz Ulaşım Modu için Nakliye Fişi No ve Tarihi mahkumları, Tuesday,Salı, Type,Türü, Unable to find Salary Component {0},{0} Maaş Bileşeni bulunamıyor, -Unable to find the time slot in the next {0} days for the operation {1}.,{1} işlemi için sonraki {0} gün içinde zaman aralığı bulunamıyor., -Unable to update remote activity,Uzak etkinlik güncellenemiyor, -Unknown Caller,Bilinmeyen arama, -Unlink external integrations,Dış entegrasyonların bağlantısını kaldır, -Unmarked Attendance for days,Günlerce işaretsiz katılım, +Unable to find the time slot in the next {0} days for the operation {1}.,{1} işlemi için sonraki {0} gün içinde zaman aralığında bulunamıyor., +Unable to update remote activity,Uzak Faaliyet güncellenemiyor, +Unknown Caller,bilinmeyen arama, +Unlink external integrations,Dış entegrasyonların aktarımlarını kaldır, +Unmarked Attendance for days,Günlerce işaretsiz bağlantı, Unpublish Item,Yayından kaldır, -Unreconciled,uzlaşmamış, +Unreconciled,Uzlaşmamış, Unsupported GST Category for E-Way Bill JSON generation,E-Way Bill JSON nesli için desteklenmeyen GST Kategorisi, -Update,Güncelleme, -Update Details,Güncelleme Ayrıntıları, +Update,Güncelle, +Update Details,Ayrıntıları Güncelle, 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 bank statement, link or reconcile a bank account","Bir banka ekstresi yükleyin, bir banka hesabını çalıştırın veya mutabakat yapın", Upload a statement,Bir ifade yükle, -Use a name that is different from previous project name,Önceki proje adından farklı bir ad kullanın, +Use a name that is different from previous project name,Önceki proje dosyalarından farklı bir ad kullan, 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.", -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, +Vacancies cannot be lower than the current openings,Boş pozisyonlar mevcut patlamalardan 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.", +Valuation Rate required for Item {0} at row {1},{1} bilgisindeki {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'i doğrula, -View,Görünüm, +Vendor Name,Satıcı Adı, +Verify Email,E-mail'i dogrula, +View,Göster, View all issues from {0},{0} 'daki tüm sorunları görüntüle, -View call log,Arama günlüğünü görüntüle, +View call log,Arama gününü görüntüle, Warehouse,Depo, Warehouse not found against the account {0},{0} hesabına karşı depo bulunamadı, Welcome to {0},Hoşgeldiniz {0}, -Why do think this Item should be removed?,Bu öğenin neden kaldırılması gerektiğini düşünüyorsunuz?, +Why do think this Item should be removed?,Bu öğenin neden kısıtlamaları gereği var?, Work Order {0}: Job Card not found for the operation {1},{0} İş Emri: {1} işlemi için kartvizit bulunamadı, -Workday {0} has been repeated.,{0} iş günü tekrar edildi., +Workday {0} has been repeated.,{0} iş günü tekrarlandı., XML Files Processed,İşlenen XML Dosyaları, Year,Yıl, Yearly,Yıllık, -You,Siz, +You,Şahsım, You are not allowed to enroll for this course,Bu kursa kayıt olma izniniz yok, -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 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 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., +You are not enrolled in program {0},{0} zorla kaydolmadınız, +You can Feature upto 8 items.,8 öğeye kadar Özelleştirebilirsiniz., +You can also copy-paste this link in your browser,Ayrıca bu link kopyalarını tarayıcınıza yapıştırabilirsiniz, +You can publish upto 200 items.,200'e kadar öğe yayınlayabilirsiniz., +You have to enable auto re-order in Stock Settings to maintain re-order levels.,Yeniden sipariş korumalarını 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 mutlaka olmalıdır, +You need to login as a Marketplace User before you can add any reviews.,Herhangi bir inceleme ekleyebilmeniz için daha önce bir Marketplace Kullanıcısı olarak giriş yapmanız gerekir., Your Featured Items,Seçtiğiniz Öğeler, Your Items,Öğeleriniz, -Your Profile,Senin profil, -Your rating:,Sizin dereceniz:, +Your Profile,senin profil, +Your rating:,Dereceniz:, and,ve, -e-Way Bill already exists for this document,e-Way Bill bu belge için zaten var, -woocommerce - {0},woocommerce - {0}, +e-Way Bill already exists for this document,e-İrsaliye bu belge için zaten var, +woocommerce - {0},WooCommerce - {0}, {0} Coupon used are {1}. Allowed quantity is exhausted,{0} Kullanılan kupon {1}. İzin verilen miktar tükendi, -{0} Name,{0} Ad, +{0} Name,{0} Adı, {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} bank transaction(s) created,{0} banka işlemi oluşturuldu, +{0} bank transaction(s) created and {1} errors,{0} banka işlemi oluşturuldu ve {1} hatalar, {0} can not be greater than {1},"{0}, {1} '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} is not the default supplier for any items.,"{0}, hiçbir ürün için yerel tedarikçi değildir.", +{0} is required,{0} içerir, {0}: {1} must be less than {2},{0}: {1} {2} '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'u oluşturmak için gerekli {}, "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, Total Expense This Year,Bu Yıl Toplam Gider, -Total Income,Toplam gelir, +Total Income,toplam gelir, Total Income This Year,Bu Yıl Toplam Gelir, Barcode,Barkod, Bold,cesur, @@ -4196,195 +4196,195 @@ Center,Merkez, Clear,Açık, Comment,Yorum Yap, Comments,Yorumlar, -DocType,DocType, +DocType,Belge Türü, Download,İndir, -Left,Bırakmak, +Left,Sol, Link,bağlantı, New,Yeni, Not Found,Bulunamadı, Print,Yazdır, -Reference Name,referans adı, +Reference Name,Referans Adı, Refresh,Yenile, -Success,başarı, -Time,zaman, -Value,değer, +Success,Başarılı, +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, +Loan Amount is mandatory,Kredi Tutarı cezaları, Mode Of Payment,Ödeme Şekli, -No students Found,Öğrenci bulunamadı, +No students Found,Öğrenci Bulunamadı, Not in Stock,Stokta yok, Please select a Customer,Lütfen bir müşteri seçin, -Printed On,Baskılı Açık, -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, +Printed On,Yazdırma Tarihi, +Received From,Alındığı Yer, +Sales Person,Satış Elemanı, +To date cannot be before From date,Bitiş tarihi başlatma cezaları önce bitirme, Write Off,Şüpheli Alacak, {0} Created,{0} Oluşturuldu, Email Id,E-posta kimliği, -No,Hiç, -Reference Doctype,Referans DocType, +No,Hayır, +Reference Doctype,Referans Belge Türü, User Id,Kullanıcı kimliği, Yes,Evet, -Actual ,Gerçek, -Add to cart,Sepete ekle, +Actual ,Gerçek , +Add to cart,Sepete Ekle, Budget,Bütçe, -Chart of Accounts,Hesap tablosu, +Chart of Accounts,Hesap Planı, Customer database.,Müşteri veritabanı., Days Since Last order,Son siparişten bu yana geçen günler, Download as JSON,JSON olarak indir, End date can not be less than start date,"Bitiş Tarihi, Başlangıç Tarihinden daha az olamaz", -For Default Supplier (Optional),Varsayılan Tedarikçi için (İsteğe bağlı), -From date cannot be greater than To date,Tarihten itibaren tarihe kadardan ileride olamaz, -Group by,Grup tarafından, -In stock,Stokta var, +For Default Supplier (Optional),Varsayılan tedarikçi için (İsteğe bağlı), +From date cannot be greater than To date,Tarihten bugüne kadardan ileride olamaz, +Group by,Gruplandır, +In stock,Stokta, Item name,Ürün Adı, -Loan amount is mandatory,Kredi tutarı zorunludur, -Minimum Qty,Minimum adet, +Loan amount is mandatory,Kredi tutarı zorunlu, +Minimum Qty,Minimum Mik, More details,Daha fazla detay, Nature of Supplies,Malzemelerin Doğası, No Items found.,Hiç bir öğe bulunamadı., No employee found,Çalışan bulunmadı, -No students found,Hiçbir öğrenci Bulundu, +No students found,Hiçbir öğrenci yok, Not in stock,Stokta yok, Not permitted,İzin verilmedi, -Open Issues ,Açık sorunlar, +Open Issues ,Açık Sorunlar, Open Projects ,Açık Projeler, -Open To Do ,To Do Aç, +Open To Do ,Açık Yapılacaklar, Operation Id,Operasyon Kimliği, -Partially ordered,kısmen Sıralı, +Partially ordered,Yoğun Sıralı, Please select company first,İlk Şirket seçiniz, Please select patient,Lütfen hastayı seçin, -Printed On ,Basılı, +Printed On ,Basım tarihi, Projected qty,Öngörülen Adet, 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, +Source Location is required for the Asset {0},{0} varlığına ait Kaynak Bağlantısı gerekli, Tax Id,Vergi numarası, -To Time,Zamana, +To Time,Bitiş Zamanı, 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ı, Value or Qty,Değer Veya Adet, Variance ,Varyans, -Variant of,Of Varyant, +Variant of,Varyant, Write off,Şüpheli Alacak, -hours,Saat, -received from,Dan alındı, -to,Şu kişiye, +hours,saat, +received from,Alındığı yer, +to,Şu kişi, 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., -Please set {0},Lütfen {0} ayarlayınız, -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> Eğitim Ayarları bölümünde Eğitmen Adlandırma Sistemini kurun, +Failed to setup defaults for country {0}. Please contact support@erpnext.com,{0} ülke için varsayılanlar ayarlanamadı. Lütfen support@erpnext.com ile iletişim 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} öğe bir Seri / Toplu İş Öğesi değil. Seri No / Parti No'ya karşı olamaz., +Please set {0},Lütfen {0} ayarı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> Eğitim Yönetimi bölümü Eğitmen Adlandırma Sistemini kurun, Please set Naming Series for {0} via Setup > Settings > Naming Series,Lütfen Kurulum> Ayarlar> 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} -> {1}) bulunamadı., +UOM Conversion factor ({0} -> {1}) not found for item: {2},{2} bileşeni için UOM Dönüşüm faktörü ({0} -> {1}) bulunamadı., Item Code > Item Group > Brand,Ürün Kodu> Ürün Grubu> Marka, -Customer > Customer Group > Territory,Müşteri> Müşteri Grubu> Bölge, -Supplier > Supplier Type,Tedarikçi> Tedarikçi Türü, -Please setup Employee Naming System in Human Resource > HR Settings,Lütfen İnsan Kaynakları> İ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> 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, +Customer > Customer Group > Territory,Müşteri> Müşteri Grubu> bölge, +Supplier > Supplier Type,tedarikçi> Tedarikçi Türü, +Please setup Employee Naming System in Human Resource > HR Settings,Lütfen İnsan Kaynakları> İK Yapılandırma bölümü Çalışan Adlandırma Sistemini kurun, +Please setup numbering series for Attendance via Setup > Numbering Series,Lütfen Katılım> Numaralandırma Serisi yoluyla 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 gösterge gösterir", +Auto Fetch,Otomatik Geliştirme, +Fetch Serial Numbers based on FIFO,FIFO'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.", +"To allow different rates, disable the {0} checkbox in {1}.","Farklı oranlara izin vermek için, {1} içinde {0} onayın devre dışı bırakılması.", 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}", No additional expenses has been added,Hiçbir ek masraf eklenmedi, -Asset{} {assets_link} created for {},{} İçin {assets_link} öğesi oluşturuldu, -Row {}: Asset Naming Series is mandatory for the auto creation for item {},"Satır {}: Öğe Adlandırma Serisi, {} öğesinin otomatik oluşturulması için zorunludur", -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., +Asset{} {assets_link} created for {},{} {assets_link} bileşenlerinin varlığı, +Row {}: Asset Naming Series is mandatory for the auto creation for item {},"Satır {}: Öğe Adlandırma Serisi, {} öğelerin otomatik düzenleme için sunucular", +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 gerekir., {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, +Invalid Account,geçersiz hesap, 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ş, +Partially Paid,Kısmen Ödendi, 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., -Expiry Date Mandatory,Son Kullanma Tarihi Zorunlu, +"Row {0}: The item {1}, quantity must be positive number","Satır {0}: {1} öğe, 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 ayarlar için kullanılan Toplu Öğe {1} için {0} ayarlayın., +Expiry Date Mandatory,Son Kullanım 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, +BOM 1 {0} and BOM 2 {1} should not be same,BOM 1 {0} ve BOM 2 {1} aynı şekilde, Note: Item {0} added multiple times,Not: {0} öğesi birden çok kez eklendi, YouTube,Youtube, Vimeo,Vimeo, Publish Date,Yayın tarihi, -Duration,süre, +Duration,Süre, Advanced Settings,Gelişmiş Ayarlar, -Path,yol, +Path,Path, Components,Bileşenler, Verified By,Onaylayan Kişi, -Invalid naming series (. missing) for {0},{0} için geçersiz adlandırma serisi (. Eksik), +Invalid naming series (. missing) for {0},{0} için geçersiz tanımlayıcıma serisi (.Eksik), Filter Based On,Şuna Göre Filtrele, Reqd by date,Tarihe göre talep, Manufacturer Part Number {0} is invalid,Üretici Parça Numarası {0} 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 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'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, -Session Not Active. Save doc to login.,Oturum Etkin Değil. Giriş yapmak için dokümanı kaydedin., +"Session not valid, Do you want to login?","Oturum mevcut değil, Giriş yapmak istiyor musunuz?", +Session Active,Oturum Etkinleştirme, +Session Not Active. Save doc to login.,Oturum Etkin Değil. Giriş yapmak için belgeleri arşivleme., Error! Failed to get request token.,Hata! İstek belirteci alınamadı., Invalid {0} or {1},Geçersiz {0} veya {1}, 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ünler., -Session is expired. Save doc to login.,Oturumun süresi doldu. Giriş yapmak için dokümanı kaydedin., +Session is expired. Save doc to login.,Oturumun süresi doldu. Giriş yapmak için belgeleri arşivleme., 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, -Valid Upto date cannot be before Valid From date,"Geçerli Güncel tarih, Geçerlilik Başlangıç tarihinden önce olamaz", +Valid Upto date cannot be before Valid From date,"Geçerli Güncel tarih, Geçerlilik Başlangıç kullanımından ö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, +Valid Upto date not in Fiscal Year {0},Geçerlilik Tarih {0} Mali Yıl değil, +Group Roll No,Grup Rulo No, +Maintain Same Rate Throughout Sales Cycle,Satış Döngüsü Boyunca Aynı Oranı Koru, "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.", 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ı, +Please setup Razorpay Plan ID,Lütfen Razorpay Plan Kimliğinizi ayarlayın, +Contact Creation Failed,Kişi Oluşturamadı, {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,Yaprakların Süresi Doldu, -Leave Without Pay does not match with approved {} records,"Ödemesiz Bırak, onaylı {} kayıtlarıyla eşleşmiyor", +Leaves Expired,Süresi Biten İzinler, +Leave Without Pay does not match with approved {} records,"Ödemesiz bırakma, mahremiyetler {} 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ı, Income Tax Slab must be effective on or before Payroll Period Start Date: {0},"Gelir Vergisi Levhası, Bordro Dönemi Başlangıç Tarihi: {0}", No leave record found for employee {0} on {1},{1} tarihinde {0} çalışanı için izin kaydı bulunamadı, Row {0}: {1} is required in the expenses table to book an expense claim.,Satır {0}: Bir gider talebi rezerve etmek için gider tablosunda {1} gereklidir., -Set the default account for the {0} {1},{0} {1} için varsayılan hesabı ayarlayın, +Set the default account for the {0} {1},{0} {1} için varsayılan hesap ayarı, (Half Day),(Yarım gün), Income Tax Slab,Gelir Vergisi Levhası, -Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary,Satır # {0}: Vergilendirilebilir Maaşa Dayalı Değişkenle {1} Maaş Bileşeni için tutar veya formül ayarlanamaz, -Row #{}: {} of {} should be {}. Please modify the account or select a different account.,"Satır # {}: {} / {}, {} olmalıdır. Lütfen hesabı değiştirin veya farklı bir hesap seçin.", +Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary,Satır # {0}: Vergilendirilebilir Maaşa Dayali işletimle {1} Maaş Bileşeni için tutar veya formüller ayarlanamaz, +Row #{}: {} of {} should be {}. Please modify the account or select a different account.,"Satır # {}: {} / {}, {} olmalıdır. Lütfen sahip olunan hesabı veya farklı bir hesap seçin.", 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 Warehouse'u Woocommerce Ayarlarında ayarlayın, +Please set Warehouse in Woocommerce Settings,Lütfen Warehouse'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, +Row {0}: Due Date in the Payment Terms table cannot be before Posting Date,Satır {0}: Ödeme Tablolarındaki 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, +Row #{0}: The batch {1} has already expired.,Satır # {0}: {1} grubu süresi zaten doldu., +Start Year and End Year are mandatory,Başlangıç Yılı ve Bitiş Yılı cezaları, GL Entry,GL Girdisi, Cannot allocate more than {0} against payment term {1},Ödeme şartına {1} karşı {0} '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, +Shipping rule not applicable for country {0} in Shipping Address,Gönderim Adresindeki {0} ülke için gönderi düzenlemesi geçerli değil, +Get Payments from,Ödemeleri yaptırın alın, Set Shipping Address or Billing Address,Gönderim Adresini veya Fatura Adresini Ayarlayın, Consultation Setup,Danışma Kurulumu, -Fee Validity,Ücret Geçerliği, +Fee Validity,Ücret geçerliliği, Laboratory Setup,Laboratuvar Kurulumu, -Dosage Form,Dozaj formu, +Dosage Form,Dozaj formülü, Records and History,Kayıtlar ve Tarih, Patient Medical Record,Hasta Tıbbi Kayıt, Rehabilitation,Rehabilitasyon, @@ -4392,32 +4392,32 @@ Exercise Type,Egzersiz Tipi, Exercise Difficulty Level,Egzersiz Zorluk Seviyesi, Therapy Type,Tedavi Türü, Therapy Plan,Terapi Planı, -Therapy Session,Terapi seansı, +Therapy Session,Terapi Seansı, Motor Assessment Scale,Motor Değerlendirme Ölçeği, [Important] [ERPNext] Auto Reorder Errors,[Önemli] [ERPNext] Otomatik Yeniden Sıralama Hataları, -"Regards,","Saygılarımızla,", -The following {0} were created: {1},Aşağıdaki {0} oluşturuldu: {1}, +Regards,Saygılarımızla, +The following {0} were created: {1},Aşağıdaki {0} eseri: {1}, Work Orders,İş Emirleri, -The {0} {1} created sucessfully,{0} {1} başarıyla oluşturuldu, -Work Order cannot be created for following reason:
{0},İş Emri aşağıdaki nedenle oluşturulamaz:
{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", +The {0} {1} created sucessfully,{0} {1} başarıyla kuruldu, +Work Order cannot be created for following reason:
{0},İş Emri aşağıdaki neden oluşturulamaz:
{0}, +Add items in the Item Locations table,Öğe Konumları tablona öğe ekleyin, +Update Current Stock,Mevcut Stok 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 örneklemei koleksiyonu için Parti Numarası Var'ı takip etmek", Empty,Boş, Currently no stock available in any warehouse,Şu anda herhangi bir depoda stok yok, -BOM Qty,BOM Adet, +BOM Qty,ürün reçetesi adet, Time logs are required for {0} {1},{0} {1} için zaman günlükleri gereklidir, Total Completed Qty,Toplam Tamamlanan Miktar, Qty to Manufacture,Üretilecek Miktar, -Repay From Salary can be selected only for term loans,Maaştan Geri Ödeme yalnızca vadeli krediler için seçilebilir, +Repay From Salary can be selected only for term loans,Maaştan Geri Ödeme beklemek krediler için kullanmak, No valid Loan Security Price found for {0},{0} için geçerli bir Kredi Menkul Kıymet Fiyatı bulunamadı, Loan Account and Payment Account cannot be same,Kredi Hesabı ve Ödeme Hesabı aynı olamaz, -Loan Security Pledge can only be created for secured loans,Kredi Teminat Rehni yalnızca teminatlı krediler için oluşturulabilir, +Loan Security Pledge can only be created for secured loans,Kredi Teminat Rehni yalnızca garantili krediler için oluşturulabilir, Social Media Campaigns,Sosyal Medya Kampanyaları, From Date can not be greater than To Date,"Başlangıç Tarihi, Bitiş Tarihinden büyük olamaz", -Please set a Customer linked to the Patient,Lütfen Hastaya bağlı bir Müşteri belirleyin, +Please set a Customer linked to the Patient,Lütfen Hastaya bağlı bir müşteri seçtiği, Customer Not Found,Müşteri Bulunamadı, -Please Configure Clinical Procedure Consumable Item in ,Lütfen Klinik Prosedür Sarf Malzemesini Yapılandırın, +Please Configure Clinical Procedure Consumable Item in ,Lütfen Klinik vida Sarf Malzemesini Yapılandırın, Missing Configuration,Eksik Yapılandırma, Out Patient Consulting Charge Item,Out Hasta Danışmanlık Ücreti Öğesi, Inpatient Visit Charge Item,Yatan Hasta Ziyaret Ücreti, @@ -4428,82 +4428,82 @@ Test: ,Ölçek:, Collection Details: ,Koleksiyon Ayrıntıları:, {0} out of {1},{0} / {1}, Select Therapy Type,Tedavi Türünü Seçin, -{0} sessions completed,{0} oturum tamamlandı, -{0} session completed,{0} oturum tamamlandı, +{0} sessions completed,{0} imzalama tamamlandı, +{0} session completed,{0} imzalama tamamlandı, out of {0},{0} üzerinden, -Therapy Sessions,Terapi Seansları, +Therapy Sessions,Terapi Seanları, Add Exercise Step,Egzersiz Adımı Ekle, Edit Exercise Step,Egzersiz Adımını Düzenleyin, Patient Appointments,Hasta Randevuları, Item with Item Code {0} already exists,Öğe Kodu {0} olan öğe zaten var, Registration Fee cannot be negative or zero,Kayıt Ücreti negatif veya sıfır olamaz, -Configure a service Item for {0},{0} için bir hizmet Öğesi yapılandırın, +Configure a service Item for {0},{0} için bir hizmet Öğesi yapılandırmanın, Temperature: ,Sıcaklık:, -Pulse: ,Nabız:, -Respiratory Rate: ,Solunum hızı:, +Pulse: ,Nabiz:, +Respiratory Rate: ,solunum hızı:, BP: ,BP:, BMI: ,BMI:, -Note: ,Not:, -Check Availability,Uygunluğu kontrol et, +Note: ,Olumsuz:, +Check Availability,Uygunluk kontrol et, Please select Patient first,Lütfen önce Hastayı seçin, Please select a Mode of Payment first,Lütfen önce bir Ödeme Modu seçin, -Please set the Paid Amount first,Lütfen önce Ödenen Tutarı ayarlayın, +Please set the Paid Amount first,Lütfen önce Ödenen Tutarı ayarı, Not Therapies Prescribed,Reçetesiz Terapiler, There are no Therapies prescribed for Patient {0},Hasta için reçete edilmiş hiçbir Terapi yoktur {0}, Appointment date and Healthcare Practitioner are Mandatory,Randevu tarihi ve Sağlık Hekimi Zorunludur, -No Prescribed Procedures found for the selected Patient,Seçilen Hasta için Reçeteli Prosedür bulunamadı, +No Prescribed Procedures found for the selected Patient,Seçilen Hasta için Reçeteli bulunmaması, Please select a Patient first,Lütfen önce bir Hasta seçin, -There are no procedure prescribed for ,Herhangi bir prosedür yoktur., +There are no procedure prescribed for ,Herhangi bir cerrahi yoktur., Prescribed Therapies,Reçeteli Tedaviler, -Appointment overlaps with ,Randevu şununla çakışıyor:, -{0} has appointment scheduled with {1} at {2} having {3} minute(s) duration.,"{0}, {1} ile {2} için {3} dakika süreli randevu planladı.", -Appointments Overlapping,Çakışan Randevular, +Appointment overlaps with ,Randevu şununla sınırlıyor:, +{0} has appointment scheduled with {1} at {2} having {3} minute(s) duration.,"{0}, {1} ile {2} için {3} dakikayı misafir etmeyi planladı.", +Appointments Overlapping,Çakışan Randevüleri, Consulting Charges: {0},Danışmanlık Masrafları: {0}, -Appointment Cancelled. Please review and cancel the invoice {0},Randevu İptal Edildi. Lütfen faturayı inceleyin ve iptal edin {0}, +Appointment Cancelled. Please review and cancel the invoice {0},Randevu İptal Edildi. Lütfen faturayı talep edin ve iptal edin {0}, Appointment Cancelled.,Randevu İptal Edildi., -Fee Validity {0} updated.,Ücret Geçerliliği {0} güncellendi., +Fee Validity {0} updated.,Ücret yaptırımı {0} güncellendi., 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, +{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, 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 Girişi kaydetmek istiyor musunuz?, +Stock quantity to start the Procedure is not available in the Warehouse {0}. Do you want to record a Stock Entry?,idamü başlatacak stok miktarı Depo {0} 'da mevcut değil. Bir Stok Hareketi istiyor musunuz?, {0} as on {1},"{0}, {1}", -Clinical Procedure ({0}):,Klinik Prosedür ({0}):, +Clinical Procedure ({0}):,Klinik çevre ({0}):, Please set Customer in Patient {0},Lütfen Müşteriyi Hasta olarak ayarlayın {0}, -Item {0} is not active,{0} öğesi aktif değil, -Therapy Plan {0} created successfully.,Tedavi Planı {0} başarıyla oluşturuldu., -Symptoms: ,Belirtiler:, +Item {0} is not active,{0} varlık aktif değil, +Therapy Plan {0} created successfully.,Tedavi Planı {0} başarıyla kuruldu., +Symptoms: ,birlikte olmak:, No Symptoms,Belirti Yok, Diagnosis: ,Teşhis:, No Diagnosis,Tanı Yok, Drug(s) Prescribed.,Reçeteli İlaç (lar)., -Test(s) Prescribed.,Test (ler) Önerilen., -Procedure(s) Prescribed.,Öngörülen prosedür (ler)., +Test(s) Prescribed.,Test (ler) önerilebilir., +Procedure(s) Prescribed.,Öngörülen işlemler (ler)., Counts Completed: {0},Tamamlanan Sayımlar: {0}, Patient Assessment,Hasta değerlendirmesi, -Assessments,Değerlendirmeler, -Heads (or groups) against which Accounting Entries are made and balances are maintained.,Kafaları (veya gruplar) kendisine karşı Muhasebe Girişler yapılır ve dengeler korunur., -Account Name,Hesap adı, +Assessments,değerlendirmeler, +Heads (or groups) against which Accounting Entries are made and balances are maintained.,Kafaları (veya grupları) kendisine karşı Muhasebe Girişleri yapılır ve bilançoları korunur., +Account Name,Hesap Adı, Inter Company Account,Şirket Hesabı, Parent Account,Ana Hesap, -Setting Account Type helps in selecting this Account in transactions.,Hesap Türünü ayarlamak işlemlerde bu hesabı seçeren yardımcı olur, -Chargeable,Ücretli, -Rate at which this tax is applied,Vergi uygulanma oranı, +Setting Account Type helps in selecting this Account in transactions.,Hesap Türünü ayarlar işlemlerinde bu hesabın kullanımıen yardımcı olur, +Chargeable,ücretli, +Rate at which this tax is applied,Vergi uygulama oranı, Frozen,Dondurulmuş, -"If the account is frozen, entries are allowed to restricted users.","Hesap dondurulmuş ise, girdiler kısıtlı kullanıcılara açıktır.", -Balance must be,Bakiye şu olmalıdır, +"If the account is frozen, entries are allowed to restricted users.","Hesap donmuşsa, girilenler zorla açılır.", +Balance must be,Bakiye şu olmalı, Lft,Lft, -Rgt,Rgt, -Old Parent,Eski Ebeveyn, +Rgt,sağ, +Old Parent,Eski yapı, Include in gross,Brüt dahil, Auditor,Denetçi, Accounting Dimension,Muhasebe Boyutu, -Dimension Name,Boyut adı, -Dimension Defaults,Boyut Varsayılanları, +Dimension Name,boyut adı, +Dimension Defaults,Boyut varsayılanları, Accounting Dimension Detail,Muhasebe Boyut Detayı, Default Dimension,Varsayılan Boyut, Mandatory For Balance Sheet,Bilanço Zorunlu, @@ -4511,118 +4511,118 @@ Mandatory For Profit and Loss Account,Kar Zarar Hesabı İçin Zorunlu, Accounting Period,Muhasebe Dönemi, Period Name,Dönem Adı, Closed Documents,Kapalı Belgeler, -Accounts Settings,Hesap ayarları, +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, +Make Accounting Entry For Every Stock Movement,Her Stok Hareketi için Muhasebe kaydı oluşturun, +Users with this role are allowed to set frozen accounts and create / modify accounting entries against frozen accounts,Bu rol sahibi kullanıcıların şifreli hesapları düzenleme ve şifrelenmiş 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 Kontrolü, -Check Supplier Invoice Number Uniqueness,Benzersiz Tedarikçi Fatura Numarasını Kontrol Edin, -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, +Check Supplier Invoice Number Uniqueness,Kullanıcı tedarikçisi Fatura Numarasını Kontrol Edin, +Make Payment via Journal Entry,Devmiye Kayıtları yoluyla Ödeme Yap, +Unlink Payment on Cancellation of Invoice,Fatura İptaline İlişkin Ödeme süresini kaldır, +Book Asset Depreciation Entry Automatically,Varlık Amortisman Kaydı Otomatik Olarak Kaydedin, Automatically Add Taxes and Charges from Item Tax Template,Öğe Vergisi Şablonundan Otomatik Olarak Vergi ve Masraf Ekleme, -Automatically Fetch Payment Terms,Ödeme Koşullarını Otomatik Olarak Al, -Show Payment Schedule in Print,Ödeme Programını Baskıda Göster, -Currency Exchange Settings,Döviz Kurları Ayarları, +Automatically Fetch Payment Terms,Ödeme Şifrelerini Otomatik Olarak Al, +Show Payment Schedule in Print,Ödeme Programının Baskıda Göster, +Currency Exchange Settings,Döviz Kuru Ayarları, Allow Stale Exchange Rates,Eski Döviz Kurlarına İzin Ver, -Stale Days,Bayat günler, +Stale Days,Eski Günler, Report Settings,Rapor Ayarları, Use Custom Cash Flow Format,Özel Nakit Akışı Biçimini Kullan, -Allowed To Transact With,İle Taşınmaya İzin Verildi, +Allowed To Transact With,İle İşlem Yapmaya İzin Verildi, SWIFT number,SWIFT numarası, Branch Code,Şube Kodu, Address and Contact,Adresler ve Kontaklar, -Address HTML,Adres HTML, -Contact HTML,İletişim HTML, +Address HTML,Adres HTML'si, +Contact HTML,İletişim HTML'si, Data Import Configuration,Veri Alma Yapılandırması, Bank Transaction Mapping,Banka İşlem Haritalaması, Plaid Access Token,Ekose Erişim Simgesi, -Company Account,Şirket hesabı, -Account Subtype,Hesap Türü, -Is Default Account,Varsayılan Hesap, +Company Account,Şirket Hesabı, +Account Subtype,Hesap Alt Türü, +Is Default Account,Varsayılan Hesap mı, Is Company Account,Şirket Hesabı mı, -Party Details,Parti Detayları, +Party Details,Cari Detayları, Account Details,Hesap Detayları, IBAN,IBAN, -Bank Account No,Banka hesap numarası, +Bank Account No,Banka Hesap No, Integration Details,Entegrasyon Detayları, -Integration ID,Entegrasyon kimliği, +Integration ID,Entegrasyon ID, 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,maskelemek, +Change this date manually to setup the next synchronization start date,BBir sonraki senkronizasyon başlangıç tarihini ayarlamak için bu tarihi manuel olarak değiştirin., +Mask,Maskele, Bank Account Subtype,Banka Hesabı Alt Türü, Bank Account Type,Banka Hesap Türü, Bank Guarantee,Banka Garantisi, Bank Guarantee Type,Banka Garanti Türü, -Receiving,kabul, +Receiving,Alınıyor (mal kabul), Providing,Sağlama, -Reference Document Name,Referans Doküman Adı, -Validity in Days,Gün İçinde Geçerlilik, -Bank Account Info,Banka Hesap Bilgileri, +Reference Document Name,Referans Döküman Adı, +Validity in Days,Geçerlilik Gün olarak, +Bank Account Info,Banka Hesap Bilgisi, Clauses and Conditions,Şartlar ve Koşullar, -Other Details,Diğer detaylar, +Other Details,Diğer Ayrıntılar, Bank Guarantee Number,Banka Garanti Numarası, Name of Beneficiary,Yararlanıcının Adı, -Margin Money,Marj Parası, +Margin Money,Marj Para, Charges Incurred,Yapılan Ücretler, Fixed Deposit Number,Sabit Mevduat Numarası, Account Currency,Hesabın Döviz Cinsi, -Select the Bank Account to reconcile.,Mutabakata varılacak Banka Hesabını seçin., +Select the Bank Account to reconcile.,Mutabakata var olacak 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şler, -Update Clearance Date,Güncelleme Alma Tarihi, +Get Payment Entries,Ödeme Girişleri alınsın, +Payment Entries,Ödeme Girişleri, +Update Clearance Date,Temizleme Tarihini Güncelle, Bank Reconciliation Detail,Banka Mutabakat Ayrıntısı, Cheque Number,Çek Numarası, Cheque Date,Çek Tarih, Statement Header Mapping,Deyim Üstbilgisi Eşlemesi, Statement Headers,Bildirim Başlıkları, Transaction Data Mapping,İşlem Verileri Eşlemesi, -Mapped Items,Eşlenmiş Öğeler, -Bank Statement Settings Item,Banka ekstresi ayar öğesi, +Mapped Items,Eşleştirilmiş Öğeler, +Bank Statement Settings Item,Banka Ekstrem ayar öğesi, Mapped Header,Eşlenen Üstbilgi, Bank Header,Banka Başlığı, Bank Statement Transaction Entry,Banka ekstresi işlem girişi, Bank Transaction Entries,Banka İşlem Girişleri, New Transactions,Yeni İşlemler, Match Transaction to Invoices,İşlemlerin Faturalara Eşleştirilmesi, -Create New Payment/Journal Entry,Yeni Ödeme Oluştur / Günlük Girişi, +Create New Payment/Journal Entry,Yeni Ödeme / Yevmiye Kaydı Oluştur, Submit/Reconcile Payments,Ödemeleri Gönderme / Mutabakat, Matching Invoices,Eşleşen Faturalar, Payment Invoice Items,Ödeme Faturası Öğeleri, Reconciled Transactions,Mutabık Kılınan İşlemler, -Bank Statement Transaction Invoice Item,Banka ekstresi İşlem Fatura Öğesi, +Bank Statement Transaction Invoice Item,Banka Ekstrem İşlem Fatura Öğesi, Payment Description,Ödeme Açıklaması, Invoice Date,Fatura Tarihi, -invoice,fatura, +invoice,Fatura, Bank Statement Transaction Payment Item,Banka ekstresi işlem ödeme kalemi, outstanding_amount,outstanding_amount, -Payment Reference,Ödeme referansı, -Bank Statement Transaction Settings Item,Banka ekstresi işlem ayarları öğesi, -Bank Data,Banka Verileri, +Payment Reference,Ödeme Referansı, +Bank Statement Transaction Settings Item,Banka ekstresi işlem ayarları özelliği, +Bank Data,Banka Verisi, Mapped Data Type,Eşlenen Veri Türü, Mapped Data,Eşlenmiş Veri, -Bank Transaction,Banka işlemi, +Bank Transaction,banka işlemi, ACC-BTN-.YYYY.-,ACC-BTN-.YYYY.-, Transaction ID,İşlem Kimliği, -Unallocated Amount,ayrılmamış Tutar, +Unallocated Amount,Ayrılmamış Tutar, Field in Bank Transaction,Banka İşlemindeki Alan, -Column in Bank File,Banka Dosyasındaki Sütun, +Column in Bank File,Banka Dosyasındaki Sütün, Bank Transaction Payments,Banka İşlem Ödemeleri, -Control Action,Kontrol eylem, +Control Action,Kontrol İşlemi, 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,Uyarmak, +Action if Annual Budget Exceeded on MR,MR Üzerinde Yıllık Bütçe Aşıldıysa Eylem, +Warn,Uyar, 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, +Action if Accumulated Monthly Budget Exceeded on MR,MR Üzerinde Aylık Bütçe Aşıldıysa İşlemleri, +Applicable on Purchase Order,Satınalma Siparişinde Geçerlilik, Action if Annual Budget Exceeded on PO,Yıllık Bütçe Bütçesi Aşıldıysa Eylem, Action if Accumulated Monthly Budget Exceeded on PO,Birikmiş Aylık Bütçe Bütçesi Aşıldıysa Eylem, Applicable on booking actual expenses,Fiili masraflar için geçerlidir, Action if Annual Budget Exceeded on Actual,Yıllık Bütçe Gerçekleşen Durumunda Aşıldıysa Eylem, -Action if Accumulated Monthly Budget Exceeded on Actual,"Gerçekleşen, Aylık Bütçeyi Aşdıysa Yapılacak İşlem", +Action if Accumulated Monthly Budget Exceeded on Actual,"Gerçekleşen, Aylık Bütçeyi Aşdıysa İşlemleri", Budget Accounts,Bütçe Hesapları, Budget Account,Bütçe Hesabı, Budget Amount,Bütçe Miktarı, @@ -4632,107 +4632,107 @@ C-Form No,C-Form No, Received Date,Alınan Tarih, Quarter,Çeyrek, I,ben, -II,II, +II,III, III,III, IV,IV, C-Form Invoice Detail,C-Form Fatura Ayrıntısı, Invoice No,Fatura No, Cash Flow Mapper,Nakit Akışı Eşleştiricisi, -Section Name,Bölüm adı, -Section Header,Bölüm başlığı, +Section Name,Bölüm Adı, +Section Header,Bölüm Başlığı, Section Leader,Bölüm Lideri, -e.g Adjustments for:,örneğin için ayarlamalar:, +e.g Adjustments for:,örn. Şunun için Ayarlamalar:, Section Subtotal,Bölüm Toplamı, Section Footer,Bölüm Altbilgisi, -Position,pozisyon, +Position,Pozisyon, Cash Flow Mapping,Nakit Akışı Eşleme, -Select Maximum Of 1,Maksimum 1'i seçin, +Select Maximum Of 1,Maksimum 1'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ı, +Custody,göz altı, Net Amount,Net Miktar, 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, +Chart of Accounts Importer,Hesap Planı İçe Aktarıcı, +Import Chart of Accounts from a csv file,Bir csv uzantısından Hesap Planını İçe Aktar, 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, +Cheque Print Template,Çek Baskı Şablonu, Has Print Format,Baskı Biçimi vardır, -Primary Settings,İlköğretim Ayarlar, -Cheque Size,Çek Boyutu, +Primary Settings,Primary Ayarları, +Cheque Size,Çek Boyut, Regular,Düzenli, 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, +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,Mesaj göstermek, +Distance from top edge,Üst geçidin uzaklık, +Distance from left edge,Sol üstte olan uzaklık, +Message to show,Mesaj gösteriyor, Date Settings,Tarih Ayarları, -Starting location from left edge,sol kenarından yerini başlayan, -Payer Settings,ödeyici Ayarları, -Width of amount in word,kelime miktarın Genişliği, -Line spacing for amount in words,sözleriyle miktarı için satır aralığı, -Amount In Figure,Miktar (Figür), -Signatory Position,İmzacı pozisyonu, -Closed Document,Kapalı belge, -Track separate Income and Expense for product verticals or divisions.,Ayrı Gelir izlemek ve ürün dikey veya bölümler için Gider., +Starting location from left edge,sol üstünün yeri başlıyor, +Payer Settings,Ödeyici Ayarları, +Width of amount in word,Yazıyla tutarın genişliği, +Line spacing for amount in words,sözleriyle yoğunluk için satır aralığı, +Amount In Figure,Miktar (Şekil), +Signatory Position,İmzacı Pozisyonu, +Closed Document,Kapalı Belge, +Track separate Income and Expense for product verticals or divisions.,Ayrı Gelir izlemek ve ürün dikey veya bölüm için Gider., Cost Center Name,Maliyet Merkezi Adı, Parent Cost Center,Ana Maliyet Merkezi, lft,lft, 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""",veya. "Yaz Tatili 2019 Teklifi 20", 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,Kadar geçerli, -Valid Upto,Şimdiye Kadar Geçerli, +Promotional,tanıtım, +Gift Card,hediye kartı, +unique e.g. SAVE20 To be used to get discount,Örnek örnekleme SAVE20 İndirim almak için kullanmak, +Validity and Usage,Kullanım ve Kullanım, +Valid From,Başlangıç Tarihi, +Valid Upto,Şu tarihe kadar geçerli, Maximum Use,Maksimum kullanım, Used,Kullanılmış, -Coupon Description,Kupon açıklaması, +Coupon Description,Kupon çevirisi, Discounted Invoice,İndirimli Fatura, -Debit to,Borç, +Debit to,Şuraya borçlandır, Exchange Rate Revaluation,Döviz Kuru Yeniden Değerleme, 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 Birimi Dengesi, +Balance In Account Currency,Hesap Döviz Bakiyesi, Current Exchange Rate,Mevcut Döviz Kuru, -Balance In Base Currency,Temel Para Birimi Dengesi, +Balance In Base Currency,Temel Para Birimi Bakiyesi, New Exchange Rate,Yeni Döviz Kuru, -New Balance In Base Currency,Baz Dövizinde Yeni Bakiye, +New Balance In Base Currency,Temel Dövizde 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ı, +Year Name,yıl adı, "For e.g. 2012, 2012-13","Örneğin 2012 için, 2012-13", Year Start Date,Yıl Başlangıç Tarihi, Year End Date,Yıl Bitiş Tarihi, Companies,Şirketler, -Auto Created,Otomatik Oluşturuldu, -Stock User,Hisse Senedi Kullanıcı, +Auto Created,Otomatik Yapılandırıldı, +Stock User,Hisse Senedi Kullanıcısı, Fiscal Year Company,Mali Yıl Şirketi, Debit Amount,Borç Tutarı, -Credit Amount,Kredi miktarı, -Debit Amount in Account Currency,Hesap Para Bankamatik Tutar, +Credit Amount,Kredi Tutarı, +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, +Is Opening,Açılış mı, +Is Advance,Avans mı, +To Rename,Yeniden Adlandırılacak, GST Account,GST Hesabı, CGST Account,CGST Hesabı, SGST Account,SGST Hesabı, @@ -4748,71 +4748,71 @@ 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ş, -Bank Entry,Banka Girişi, -Cash Entry,Nakit Girişi, -Credit Card Entry,Kredi Kartı Girişi, -Contra Entry,Hesaba Alacak Girişi, -Excise Entry,Tüketim Girişi, -Write Off Entry,Şüpheli Alacak Girdisi, -Opening Entry,Açılış Girdisi, +Entry Type,Kayıt Türü, +Inter Company Journal Entry,Inter Şirket Yevmiye Kaydı, +Bank Entry,Banka Kaydı, +Cash Entry,Nakit Kaydı, +Credit Card Entry,Kredi Kartı Kaydı, +Contra Entry,Ters Kayıt, +Excise Entry,Tüketim Kaydı, +Write Off Entry,Şüpheli Alacak Kaydı, +Opening Entry,Açılış Kaydı, ACC-JV-.YYYY.-,ACC-JV-.YYYY.-, -Accounting Entries,Muhasebe Girişler, +Accounting Entries,Muhasebe Kayıtları, Total Debit,Toplam Borç, -Total Credit,Toplam Kredi, +Total Credit,Toplam Alacak, Difference (Dr - Cr),Fark (Dr - Cr), -Make Difference Entry,Fark Girişi yapın, +Make Difference Entry,Fark Kaydı Yao, Total Amount Currency,Toplam Tutar Para Birimi, -Total Amount in Words,Sözlü Toplam Tutar, +Total Amount in Words,Yazıyla Toplam Tutar, Remark,Dikkat, -Paid Loan,Ücretli Kredi, -Inter Company Journal Entry Reference,Inter Şirket Dergisi Giriş Referansı, -Write Off Based On,Dayalı Borç Silme, -Get Outstanding Invoices,Bekleyen Faturaları alın, -Write Off Amount,Yazma Miktarı, +Paid Loan,Ödenen Kredi, +Inter Company Journal Entry Reference,Şirket içi Yevmiye Kaydı Referansı, +Write Off Based On,Dayalı Borç Sil, +Get Outstanding Invoices,Bekleyen Faturaları Al, +Write Off Amount,Tutarı Sil, Printing Settings,Baskı Ayarları, Pay To / Recd From,Gönderen/Alınan, -Payment Order,Ödeme talimatı, +Payment Order,Ödeme Emri, Subscription Section,Abonelik Bölümü, -Journal Entry Account,Kayıt Girdisi Hesabı, +Journal Entry Account,Yevmiye Kaydı Hesabı, Account Balance,Hesap Bakiyesi, -Party Balance,Parti Dengesi, +Party Balance,Cari Bakiyesi, Accounting Dimensions,Muhasebe Boyutları, If Income or Expense,Gelir veya Gider ise, Exchange Rate,Döviz Kuru, -Debit in Company Currency,Şirket Para Birimi Bankamatik, -Credit in Company Currency,Şirket Para Kredi, +Debit in Company Currency,Şirket Para Biriminde Borç, +Credit in Company Currency,Şirket Para Biriminde Alacak, Payroll Entry,Bordro Girişi, Employee Advance,Çalışan Avansı, Reference Due Date,Referans Sona Erme Tarihi, -Loyalty Program Tier,Sadakat Programı Katmanı, -Redeem Against,Karşı Kullanılan, -Expiry Date,Son kullanma tarihi, -Loyalty Point Entry Redemption,Sadakat Nokta Giriş Redemption, -Redemption Date,Kefalet Tarihi, -Redeemed Points,İtfa Edilen Puanlar, -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, +Loyalty Program Tier,Sadakat Katmanı Programı, +Redeem Against,Karşı Kullan, +Expiry Date,Son Kullanım Tarihi, +Loyalty Point Entry Redemption,Sadakat Nokta Giriş İtfa, +Redemption Date,Kullanım Tarihi, +Redeemed Points,Kullanılan Puanlar, +Loyalty Program Name,Sadakat Programı Adı, +Loyalty Program Type,Sadakat Programı Türü, +Single Tier Program,Tek Katmanlı Programı, Multiple Tier Program,Çok Katmanlı Program, -Customer Territory,Müşteri bölge, -Auto Opt In (For all customers),Otomatik Opt In (tüm müşteriler için), +Customer Territory,müşteri bölgesi, +Auto Opt In (For all customers),Otomatik Opt In (tüm kullanım için), Collection Tier,Koleksiyon Katmanı, Collection Rules,Koleksiyon Kuralları, -Redemption,ödeme, +Redemption,Kullanım, Conversion Factor,Katsayı, 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,Bağlılık Programı Yardımı, +Loyalty Program Help,Sadakat Programı Yardımı, Loyalty Program Collection,Sadakat Programı Koleksiyonu, Tier Name,Katman Adı, Minimum Total Spent,Minimum Toplam Harcama, Collection Factor (=1 LP),Toplama Faktörü (= 1 LP), -For how much spent = 1 Loyalty Point,Ne kadar harcadı = 1 Sadakat Noktası, +For how much spent = 1 Loyalty Point,Ne kadar kaldı = 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.", @@ -4822,154 +4822,154 @@ Name of the Monthly Distribution,Aylık Dağıtım Adı, Monthly Distribution Percentages,Aylık Dağılımı Yüzdeler, Monthly Distribution Percentage,Aylık Dağılımı Yüzde, Percentage Allocation,Yüzde Tahsisi, -Create Missing Party,Kayıp Parti Yarat, -Create missing customer or supplier.,Kayıp müşteri veya tedarikçi yaratın., -Opening Invoice Creation Tool Item,Açılış Fatura Oluşturma Aracı Öğe, +Create Missing Party,Eksik Cariyi Oluştur, +Create missing customer or supplier.,Kayıp müşteri veya tedarikçi koruması., +Opening Invoice Creation Tool Item,Fatura Oluşturma Aracı Öğesini Açma, Temporary Opening Account,Geçici Açılış Hesabı, -Party Account,Taraf Hesabı, +Party Account,Cari Hesap, Type of Payment,Ödeme Türü, ACC-PAY-.YYYY.-,ACC-PAY-.YYYY.-, -Receive,Alma, +Receive,Tahsilat yap, Internal Transfer,İç transfer, Payment Order Status,Ödeme Emri Durumu, Payment Ordered,Ödeme Siparişi, -Payment From / To,From / To Ödeme, +Payment From / To,Ödeme Giriş/Çıkış Bilgisi, Company Bank Account,Şirket Banka Hesabı, -Party Bank Account,Parti Bankası Hesabı, -Account Paid From,Hesap şuradan ödenmiş, -Account Paid To,Hesap şuna ödenmiş, +Party Bank Account,Cari Banka Hesabı, +Account Paid From,Ödeme Çıkış Hesabı, +Account Paid To,Ödeme Giriş Hesabı, Paid Amount (Company Currency),Ödenen Tutar (Şirket Para Biriminde), Received Amount,alınan Tutar, -Received Amount (Company Currency),Alınan Tutar (Şirket Para Birimi), -Get Outstanding Invoice,Ödenmemiş Fatura Alın, +Received Amount (Company Currency),alınan Tutar (Şirket Para Birimi), +Get Outstanding Invoice,Öden Faturalamamış Alın, Payment References,Ödeme Referansları, 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, +Set Exchange Gain / Loss,Değişim Kazanç Seti / Zarar, Difference Amount (Company Currency),Fark Tutarı (Şirket Para Birimi), Write Off Difference Amount,Şüpheli Alacak Fark Hesabı, -Deductions or Loss,Kesintiler veya Zararı, -Payment Deductions or Loss,Ödeme Kesintiler veya Zararı, +Deductions or Loss,Kesintiler veya Zarar, +Payment Deductions or Loss,Ödeme Kesintileri 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ı, Default Payment Request Message,Standart Ödeme Talebi Mesajı, PMO-,PMO-, Payment Order Type,Ödeme Emri Türü, -Payment Order Reference,Ödeme Siparişi Referansı, -Bank Account Details,Banka hesabı detayları, +Payment Order Reference,Ödeme Sipariş Referansı, +Bank Account Details,Banka Hesap Bilgisi, Payment Reconciliation,Ödeme Mutabakat, -Receivable / Payable Account,Alacak / Borç Hesap, +Receivable / Payable Account,Alacak / Borç Hesabı, Bank / Cash Account,Banka / Kasa Hesabı, From Invoice Date,Fatura Tarihinden İtibaren, -To Invoice Date,Tarihi Faturaya, +To Invoice Date,Bitiş Fatura Tarihi, 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.", +System will fetch all the entries if limit value is zero.,"Eğer limit değeri sıfırsa, sistem tüm kayıtlarını alır.", Get Unreconciled Entries,Mutabık olmayan girdileri alın, Unreconciled Payment Details,Mutabakatı Yapılmamış Ödeme Ayrıntıları, -Invoice/Journal Entry Details,Fatura / günlük girdisi Detayları, +Invoice/Journal Entry Details,Fatura / Yevmiye Kaydı Detayları, Payment Reconciliation Invoice,Ödeme Mutabakat Faturası, Invoice Number,Fatura Numarası, Payment Reconciliation Payment,Ödeme Mutabakat Ödemesi, -Reference Row,referans Satır, -Allocated amount,Ayrılan miktar, +Reference Row,Referans Satır, +Allocated amount,Tahsis edilen Tutar, Payment Request Type,Ödeme İsteği Türü, -Outward,dışa doğru, -Inward,içe doğru, +Outward,Dışa doğru, +Inward,İçe doğru, ACC-PRQ-.YYYY.-,ACC-PRQ-.YYYY.-, -Transaction Details,ödeme detayları, +Transaction Details,İşlem Detayları, Amount in customer's currency,Müşterinin para miktarı, Is a Subscription,Bir Abonelik mi, Transaction Currency,İşlem Döviz, Subscription Plans,Abonelik Planları, -SWIFT Number,SWIFT numarası, -Recipient Message And Payment Details,Alıcı Mesaj Ve Ödeme Ayrıntıları, -Make Sales Invoice,Satış Faturası Oluştur, +SWIFT Number,SWIFT Numarası, +Recipient Message And Payment Details,Alıcı Mesaj Ve Ödeme Ayrıntısı, +Make Sales Invoice,Satış Faturası Oluşturma, Mute Email,E-postayı Sessize Al, payment_url,payment_url, Payment Gateway Details,Ödeme Gateway Detayları, -Payment Schedule,Ödeme PLANI, +Payment Schedule,Ödeme Planla, Invoice Portion,Fatura Porsiyonu, Payment Amount,Ödeme Tutarı, Payment Term Name,Ödeme Süresi Adı, -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ı, +Due Date Based On,Vade Tarihine göre, +Day(s) after invoice date,Fatura tarihinden sonra kaç gün, +Day(s) after the end of the invoice month,Fatura ayının bitiminden sonra kaç gün, +Month(s) after the end of the invoice month,Fatura ayının bitiminden sonra kaç ay, +Credit Days,Alacak Günü, +Credit Months,Alacak Ayı, +Allocate Payment Based On Payment Terms,Ödeme Hücrelerine 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, kiracıları bölünecek ve her ödeme süresine göre ödeme planındaki tutarlara göre tahsis edilecektir.", +Payment Terms Template Detail,Ödeme Protokolleri Şablon Ayrıntısı, 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,", +"The account head under Liability or Equity, in which Profit/Loss will be booked","Hesap kafası altında Kar / Zarar rezerve sorumluluğu veya Özkaynak,", 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ı Yoksay, +Company Address,Şirket Adresi, +Update Stock,Stok Güncelle, +Ignore Pricing Rule,Fiyatlandırma Kuralını Yoksay, Applicable for Users,Kullanıcılar için geçerlidir, Sales Invoice Payment,Satış Fatura Ödeme, Item Groups,Öğe Grupları, Only show Items from these Item Groups,Sadece bu Öğe Gruplarındaki Öğeleri göster, Customer Groups,Müşteri Grupları, -Only show Customer of these Customer Groups,Sadece bu Müşteri Gruplarının Müşterisini gösterin, +Only show Customer of these Customer Groups,Sadece bu Müşteri Gruplarının Müşterisini arayın, Write Off Account,Şüpheli Alacaklar Hesabı, Write Off Cost Center,Şüpheli Alacak Maliyet Merkezi, Account for Change Amount,Değişim Miktarı Hesabı, Taxes and Charges,Vergi ve Harçlar, -Apply Discount On,İndirim On Uygula, +Apply Discount On,İndirim buna göre Uygula, POS Profile User,POS Profil Kullanıcıları, -Apply On,Uygula, +Apply On,Buna Uygula, Price or Product Discount,Fiyat veya Ürün İndirimi, -Apply Rule On Item Code,Madde Kodunda Kural Uygula, -Apply Rule On Item Group,Öğe Grubuna Kural Uygula, -Apply Rule On Brand,Marka Üzerine Kural Uygula, +Apply Rule On Item Code,Ürün Koduna Kural Uygula, +Apply Rule On Item Group,Ürün Grubuna Kural Uygula, +Apply Rule On Brand,Markaya Kural Uygula, Mixed Conditions,Karışık Koşullar, -Conditions will be applied on all the selected items combined. ,Seçilen tüm öğelere birleştirilmiş koşullar uygulanacaktır., -Is Cumulative,Birikimli mi, +Conditions will be applied on all the selected items combined. ,Seçilen tüm seçeneklere birleştirilmiş yapı uygulanacaktır., +Is Cumulative,Kümülatif / Birikerek artan, Coupon Code Based,Kupon Koduna Dayalı, Discount on Other Item,Diğer Ürünlerde İndirim, -Apply Rule On Other,Diğer Kural Kuralı Uygula, -Party Information,Parti Bilgisi, -Quantity and Amount,Miktar ve Miktar, -Min Qty,Minimum Miktar, -Max Qty,En fazla miktar, -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ı, +Apply Rule On Other,Kuralı Diğerlerine Uygula, +Party Information,Cari Bilgisi, +Quantity and Amount,Miktar ve Tutar, +Min Qty,Min Miktar, +Max Qty,Max Miktar, +Min Amt,Min Tutar, +Max Amt,Max Tutar, +Period Settings,Dönem Ayarları, +Margin,Kar Marji, +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, +For Price List,Fiyat Listesi için, Product Discount Scheme,Ürün İndirim Şeması, -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", +Same Item,Aynı Ürün, +Free Item,Bedava Ürün, +Threshold for Suggestion,Öneriler için Eşik, +System will notify to increase or decrease quantity or amount ,Sistem miktarını veya miktarını artırma veya azaltma bildirimi, +"Higher the number, higher the priority","Yüksek sayı, yüksek öncelik", Apply Multiple Pricing Rules,Birden Çok Fiyatlandırma Kuralı Uygula, Apply Discount on Rate,Fiyatına İndirim Uygula, Validate Applied Rule,Uygulanan Kuralı Doğrula, Rule Description,Kural Açıklaması, Pricing Rule Help,Fiyatlandırma Kuralı Yardım, Promotional Scheme Id,Promosyon Şeması No, -Promotional Scheme,Promosyon Şeması, +Promotional Scheme,Tanıtım Şeması, Pricing Rule Brand,Fiyatlandırma Kural Markası, Pricing Rule Detail,Fiyatlandırma Kuralı Detayı, -Child Docname,Alt Doküman Adı, -Rule Applied,Uygulanan Kural, +Child Docname,Alt Dokuman Adı, +Rule Applied,Yürüten Kural, Pricing Rule Item Code,Fiyatlandırma Kuralı Ürün Kodu, Pricing Rule Item Group,Fiyatlandırma Kuralı Madde Grubu, Price Discount Slabs,Fiyat İndirim Levhaları, @@ -4978,229 +4978,229 @@ Product Discount Slabs,Ürün İndirimli Döşeme, Promotional Scheme Product Discount,Promosyon Programı Ürün İndirimi, 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,Düzenleme Gönderme Tarihi ve Saati, -Is Paid,Ücretli mi, -Is Return (Debit Note),Iade (banka notu), +Edit Posting Date and Time,İşlem Tarihi ve Saatini Düzenle, +Is Paid,Ücretli/Ödendi mi, +Is Return (Debit Note),Iade mi (Borç dekontu), Apply Tax Withholding Amount,Vergi Stopaj Tutarını Uygula, Accounting Dimensions ,Muhasebe Boyutları, Supplier Invoice Details,Tedarikçi Fatura Ayrıntıları, Supplier Invoice Date,Tedarikçi Fatura Tarihi, Return Against Purchase Invoice,Karşı Satınalma Fatura Dönüş, -Select Supplier Address,Seç Tedarikçi Adresi, +Select Supplier Address,Tedarikçi Adresi Seç, Contact Person,İrtibat Kişi, -Select Shipping Address,Seç Teslimat Adresi, -Currency and Price List,Döviz ve Fiyat Listesi, +Select Shipping Address,Teslimat Adresi Seç, +Currency and Price List,Fiyat Listesi ve Para Birimi, Price List Currency,Fiyat Listesi Para Birimi, Price List Exchange Rate,Fiyat Listesi Döviz Kuru, -Set Accepted Warehouse,Kabul Edilen Depoyu Ayarla, +Set Accepted Warehouse,Kabül edilen Depoyu Ayarla, Rejected Warehouse,Reddedilen Depo, -Warehouse where you are maintaining stock of rejected items,Reddedilen Ürün stoklarını muhafaza ettiğiniz depo, +Warehouse where you are maintaining stock of rejected items,Reddetilen Ürün stoklarını muhafaza ettiği depo, Raw Materials Supplied,Tedarik edilen Hammaddeler, Supplier Warehouse,Tedarikçi Deposu, Pricing Rules,Fiyatlandırma Kuralları, Supplied Items,Verilen Öğeler, -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,Vergiler ve Harçlar Şablon Satınalma, -Purchase Taxes and Charges,Alım Vergi ve Harçları, -Tax Breakup,Vergi dağılımı, +Total (Company Currency),Toplam (Şirket Dövizi), +Net Total (Company Currency),Net Toplam (Şirket Dövizi), +Total Net Weight,Toplam Net Ağırlık, +Shipping Rule,Nakliye Kuralı, +Purchase Taxes and Charges Template,Alış Vergisi ve Harçlar Şablonu, +Purchase Taxes and Charges,Alış Vergisi ve Harçları, +Tax Breakup,Vergi Kırı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), +Taxes and Charges Deducted (Company Currency),Düşülen 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, +Taxes and Charges Deducted,Düşülen Vergi ve Harçlar, Total Taxes and Charges,Toplam Vergi ve Harçlar, Additional Discount,Ek İndirim, -Apply Additional Discount On,Ek İndirim On Uygula, +Apply Additional Discount On,Ek İndirim Uygula şuna göre, 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 (ޞirket para birimi), +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, +In Words (Company Currency),Yazıyla (Firma para birimi) olarak, Rounding Adjustment,Yuvarlama Ayarı, -In Words,Kelimelerle, -Total Advance,Toplam Advance, -Disable Rounded Total,Yuvarlak toplam devre dışı, +In Words,Yazıyla, +Total Advance,Toplam Avans, +Disable Rounded Total,Yuvarlanmış Toplamı Devre Dışı Bırak, Cash/Bank Account,Kasa / Banka Hesabı, 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, +Get Advances Paid,Avans Ödemesini Getir, Advances,Avanslar, -Terms,Şartlar, +Terms,Vade ve Şartlar, Terms and Conditions1,Şartlar ve Koşullar 1, -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,Kredi için, -Party Account Currency,Parti Hesap Döviz, +Group same items,Aynı Ögeleri Grupla, +Print Language,Baskı Dili, +"Once set, this invoice will be on hold till the set date","Ayarlandıktan sonra, bu fatura yazılan tarihe kadar beklemeye alınır.", +Credit To,Alacak Yeri, +Party Account Currency,Cari Hesabı Dövizi, 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, +Start date of current invoice's period,Cari dönem faturanın Başlangıç tarihi, +End date of current invoice's period,Cari dönem faturanın bitiş tarihi, Update Auto Repeat Reference,Otomatik Tekrar Referansı Güncelle, -Purchase Invoice Advance,Fatura peşin alım, -Purchase Invoice Item,Satın alma Faturası Ürünleri, +Purchase Invoice Advance,Satınalma Faturası Avansı, +Purchase Invoice Item,Satınalma Faturası Ürünleri, Quantity and Rate,Miktarı ve Oranı, Received Qty,Alınan Miktar, Accepted Qty,Kabul edilen 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ı (Şirket para birimi), -Rate ,Birim Fiyat, -Rate (Company Currency),Oranı (Şirket para birimi), +Rejected Qty,Reddedilen Miktar, +UOM Conversion Factor,Birim Dönüşüm Katsayısı, +Discount on Price List Rate (%),Fiyat Listesi Puan İndirimi (%), +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), +Is Free Item,Bedava Ürün mü, +Net Rate,Net Oran, +Net Rate (Company Currency),Net Oranı (Şirket Para Birimi), +Net Amount (Company Currency),Net Tutar (Şirket Para Birimi), 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, +Landed Cost Voucher Amount,Bindirilmiş Maliyet Fiş Tutarı, +Raw Materials Supplied Cost,Tedarik edilen Hammadde Maliyeti, +Accepted Warehouse,Kabul edilen Depo, Serial No,Seri No, Rejected Serial No,Seri No Reddedildi, Expense Head,Gider Başlığı, -Is Fixed Asset,Sabit Varlık, -Asset Location,Öğe Konumu, +Is Fixed Asset,Sabit Kıymet mi, +Asset Location,Varlık Konumu, Deferred Expense,Ertelenmiş Gider, Deferred Expense Account,Ertelenmiş Gider Hesabı, Service Stop Date,Servis Durdurma Tarihi, -Enable Deferred Expense,Ertelenmiş Gider'i Etkinleştir, +Enable Deferred Expense,Ertelenmiş Gideri Etkinleştirin, 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, +Allow Zero Valuation Rate,Sıfır Değerleme Oranına İzin ver, Item Tax Rate,Ürün Vergi Oranı, -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, +Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges,Bir dizi olarak madde ustasından getirilen ve bu alanda depolanan vergi detay tablosu.\n Vergi ve Ücretleri için kullanılır, Purchase Order Item,Satınalma Siparişi Ürünleri, -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, +Purchase Receipt Detail,Satınalma Makbuzu Ayrıntısı, +Item Weight Details,Öğe Ağırlık Ayrıntıları, +Weight Per Unit,Birim 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 ya da Çıkar, -Deduct,Düşmek, -On Previous Row Amount,Önceki satır toplamı, -On Previous Row Total,Önceki satır toplamı, +Add or Deduct,Ekle veya Çıkar, +Deduct,Çıkar, +On Previous Row Amount,Önceki Satır Tutarı, +On Previous Row Total,Önceki Satır Toplamı, 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", +"If checked, the tax amount will be considered as already included in the Print Rate / Print Amount","İşaretli ise, vergi yükün hali hazırda Basım Oranında/Basım Miktarında dahil olduğu düşünülecektir", Account Head,Hesap Başlığı, Tax Amount After Discount Amount,İndirim Tutarından sonraki vergi miktarı, Item Wise Tax Detail ,Öğe Bilge Vergi Ayrıntısı, -"Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense 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. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.\n10. Add or Deduct: Whether you want to add or deduct the tax.","Tüm Satınalma İşlemleri uygulanabilir standart vergi şablonu. Bu şablon burada tanımlamak \n\n vergi oranı Not #### \n\n vb ""Handling"", vergi başkanları ve ""Denizcilik"", ""Sigorta"" gibi diğer gider başkanlarının listesini içerebilir ** Tüm ** Öğeler için standart vergi oranı olacaktır. 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. Için Vergi veya şarj düşünün: Vergi / şarj değerlemesi için sadece (toplam bir parçası) veya sadece (öğeye değer katmıyor) toplam veya her ikisi için bu bölümde belirtebilirsiniz.\n 10. Ekle veya Düşebilme: eklemek veya vergi kesintisi etmek isteyin.", +"Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense 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. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.\n10. Add or Deduct: Whether you want to add or deduct the tax.","Tüm Satınalma İşlemleri uygulanabilir standart vergi şablonu. Bu şablon burada tablolar \n\n vergi oranı Not #### \n\n vb ""Handling"", vergi başkanları ve ""Denizcilik"", ""Sigorta"" gibi diğer gider başkanlıklarının listesinin izlediği ** Tüm ** Öğeler için standart vergi oranı olacaktır. Farklı fiyat bilgisi ** ** Ürünleri varsa, bunlar ** Ürün Vergisinde özendirilmelidir ** ** ** Ürün ana tablosu.\n\n #### Kolonların \n\n 1 Açıklaması. Hesaplama Türü: \n - Bu üzerinde olabilir ** Net (yani temel miktarn toplamı) ** Toplam.\n - ** Önceki Satır Toplam / Tutar ** Açık (kümülatif vergi ya da harç için). Bu seçeneği ayarlarsanız, vergi miktarı veya toplam (vergi tablosunda) önceki bilgilerde bir yüzdesi olarak uygulanacaktır.\n - ** ** Gerçek (belirtildiği gibi).\n 2. Hesap Başkanı: Bu vergi \n 3 rezerve harcamaları Hesap defteri altında. Maliyet Merkezi: Vergi / şarj (nakliye gibi) bir gelir veya gider ise bir Maliyet Merkezinin ödenmesi 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 indirme Toplu toplam.\n 8. Enter Satır: ""Önceki Satır Toplam"" esaslı Eğer bu hesaplama için bir üs (varsayılan bir önceki satır olduğu) olarak alınması satır sayısını alır. \n 9. İçin Vergi veya şarj düşünün: Vergi / şarj değerlemesi için sadece (toplam bir parçası) veya (öğeye değer katmıyor sadece) toplam veya her ikisi için bu sonucu belirtebilirsiniz.\n 10. Ekle veya Düşebilme: dahil veya vergi kesintisi yapmak isteyin.", Salary Component Account,Maaş Bileşen Hesabı, -Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected.,Bu mod seçildiğinde varsayılan Banka / Kasa hesabı otomatik Maaş Dergisi girdisi güncellenecektir., +Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected.,Bu mod seçildiğinde varsayılan Banka / Kasa hesabı otomatik Maaş Dergisi'ne girecektir., ACC-SINV-.YYYY.-,ACC-SINV-.YYYY.-, Include Payment (POS),Ödeme Dahil (POS), Offline POS Name,Çevrimdışı POS Adı, -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 Sipariş, -Customer's Purchase Order Date,Müşterinin Sipariş Tarihi, +Is Return (Credit Note),İade mi (Alacak Dekontu), +Return Against Sales Invoice,Satış Faturası Karşılığında İade, +Update Billed Amount in Sales Order,Satış Sipariş Faturasındaki Tutarını Güncelle, +Customer PO Details,Müşteri Satınalma Siparişi 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 Address,Müşteri Adresi, 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,Ürün Çıkış Deposu, -Packing List,Paket listesi, +Rate at which Customer Currency is converted to customer's base currency,Müşteri Para Biriminin Müşterinin temel birimine dönüştürme oranı, +Rate at which Price list currency is converted to customer's base currency,Fiyat listesi para biriminin temel verileri para birimine dönüştürme oranı, +Set Source Warehouse,Kaynak Deposu Ayarla, +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ış 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, +Sales Taxes and Charges Template,Satış Vergisi ve Harçlar Şablonu, +Sales Taxes and Charges,Satış Vergisi ve Harçlar, +Loyalty Points Redemption,Sadakat Puanı Kullanımı, +Redeem Loyalty Points,Sadakat Puanı Kullan, +Redemption Account,Kullanım Hesabı, +Redemption Cost Center,Kullanım Maliyet Merkezi, +In Words will be visible once you save the Sales Invoice.,Satış faturasını saklayacağınızda görünür olacaktır., +Allocate Advances Automatically (FIFO),Avansları Otomatik Olarak Tahsis et (FIFO), +Get Advances Received,Alınan Avansları Getir, Base Change Amount (Company Currency),Baz Değişim Miktarı (Şirket Para Birimi), -Write Off Outstanding Amount,Vadesi Dolmuş Şüpheli Alacak Miktarı, -Terms and Conditions Details,Şartlar ve Koşullar Detayları, +Write Off Outstanding Amount,Vadesi Dolan Şüpheli Alacak Miktarı, +Terms and Conditions Details,Şartlar ve Koşullar Detayı, Is Internal Customer,İç Müşteri mi, -Is Discounted,İndirimli, +Is Discounted,İndirimli mi, Unpaid and Discounted,Ödenmemiş ve İndirimli, Overdue and Discounted,Gecikmiş ve İndirimli, Accounting Details,Muhasebe Detayları, -Debit To,Borç, -Is Opening Entry,Açılış Girdisi, +Debit To,Borç Yeri, +Is Opening Entry,Açılış Kaydı mı, 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 miktarı, +Advance amount,Avans Tutarı, Sales Invoice Item,Satış Faturası Ürünü, Customer's Item Code,Müşterinin Ürün Kodu, Brand Name,Marka Adı, -Qty as per Stock UOM,Her Stok Ölçü Birimi (birim) için miktar, +Qty as per Stock UOM,Stok Birimi için Miktar, Discount and Margin,İndirim ve Kar, -Rate With Margin,Marjla Oran, +Rate With Margin,Marjlı Oran, Discount (%) on Price List Rate with Margin,Fiyat Listesindeki İndirim (%) Marjlı Oran, Rate With Margin (Company Currency),Marjla Oran (Şirket Para Birimi), -Delivered By Supplier,Tedarikçi Tarafından Teslim, +Delivered By Supplier,Tedarikçi Tarafından Teslim Edildi, Deferred Revenue,Ertelenmiş Gelir, Deferred Revenue Account,Ertelenmiş Gelir Hesabı, Enable Deferred Revenue,Ertelenmiş Geliri Etkinleştir, Stock Details,Stok Detayları, -Customer Warehouse (Optional),Müşteri Depo (İsteğe bağlı), +Customer Warehouse (Optional),Müşteri Deposu (İsteğe bağlı), Available Batch Qty at Warehouse,Depodaki Mevcut Parti Miktarı, Available Qty at Warehouse,Depodaki mevcut miktar, Delivery Note Item,İrsaliye Ürünleri, Base Amount (Company Currency),Esas Tutar (Şirket Para Birimi), Sales Invoice Timesheet,Satış Faturası Çizelgesi, Time Sheet,Mesai Kartı, -Billing Hours,Fatura Saatleri, -Timesheet Detail,Zaman çizelgesi Detay, +Billing Hours,Saatleri Faturalandırma, +Timesheet Detail,Zaman 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.", +Item Wise Tax Detail,Ürün bazında Vergi Detayları, +Parenttype,Ana İpucu, +"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 başvurusu size Not #### \n\n vb ""Handling"", vergi başkanları ve ""Denizcilik"", ""Sigorta"" gibi diğer gider / gelir başkanları listesinin izlediği ** Tüm ** Öğeler için standart vergi oranı burada tanımlayın. Farklı fiyat bilgisi ** ** Ürünleri varsa, bunlar ** Ürün Vergisinde özendirilmelidir ** ** ** Ürün ana tablosu.\n\n #### Kolonların \n\n 1 Açıklaması. Hesaplama Türü: \n - Bu üzerinde olabilir ** Net (yani temel miktarn toplamı) ** Toplam.\n - ** Önceki Satır Toplam / Tutar ** Açık (kümülatif vergi ya da harç için). Bu seçeneği ayarlarsanız, vergi miktarı veya toplam (vergi tablosunda) önceki bilgilerde bir yüzdesi olarak uygulanacaktır.\n - ** ** Gerçek (belirtildiği gibi).\n 2. Hesap Başkanı: Bu vergi \n 3 rezerve harcamaları Hesap defteri altında. Maliyet Merkezi: Vergi / şarj (nakliye gibi) bir gelir veya gider ise bir Maliyet Merkezinin ödenmesi 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 indirme Toplu toplam.\n 8. Enter Satır: ""Önceki Satır Toplam"" esaslı Eğer bu hesaplama için bir üs (varsayılan bir önceki satır olduğu) olarak alınması satır sayısını alır. \n 9. Temel Puan dahil bu vergi ?: size bu işaretlerseniz, bu vergi kalemi aşağıdaki tabloda gösterilmeyecek, ama ana öğe tablosu Temel Oranı dahil olacağını anlama gelir. Eğer bileşenleri düz (tüm vergiler dahil) fiyat vermek istiyorsanız kullanışlı.", * Will be calculated in the transaction.,* İşlemde hesaplanacaktır., -From No,Hayır'dan, -To No,Hayır için, -Is Company,Şirket midir, -Current State,Mevcut durum, -Purchased,satın alındı, +From No,Baş. Numarası, +To No,Bitiş Numarası, +Is Company,Şirket mi, +Current State,Mevcut Durum, +Purchased,Satın alındı, From Shareholder,Hissedarlardan, -From Folio No,Folio No'dan, -To Shareholder,Hissedarya, -To Folio No,Folio No'ya, +From Folio No,Folyo No'dan, +To Shareholder,Hissedar Bitişi, +To Folio No,Bitiş Folyo Numarası, Equity/Liability Account,Özkaynak / Sorumluluk Hesabı, Asset Account,Öğe Hesabı, (including),(dahildir), ACC-SH-.YYYY.-,ACC-SH-.YYYY.-, -Folio no.,Folyo numarası., +Folio no.,Folyo serisi., Address and Contacts,Adres ve Kişiler, -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, +Contact List,Kişi Listesi, +Hidden list maintaining the list of contacts linked to Shareholder,Hissedar ile bağlantılı alıcıları koruyan gizli liste, +Specify conditions to calculate shipping amount,Nakliye masraflarını karşılamak için koşullar, 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,Tabanlı hesaplayın, +Shipping Account,Nakliye Hesabı, +Calculate Based On,Şuna Göre Hesapla, Fixed,Sabit, Net Weight,Net Ağırlık, Shipping Amount,Kargo Tutarı, @@ -5208,9 +5208,9 @@ Shipping Rule Conditions,Kargo Kural Koşulları, Restrict to Countries,Ülkelere Kısıtla, 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,Değerden, -To Value,Değer Vermek, +A condition for a Shipping Rule,Nakliye Kuralı için şart, +From Value,Baş. Değeri, +To Value,Bitiş Değeri, Shipping Rule Country,Nakliye Kural Ülke, Subscription Period,Abonelik Süresi, Subscription Start Date,Abonelik Başlangıç Tarihi, @@ -5219,8 +5219,8 @@ Trial Period Start Date,Deneme Süresi Başlangıç Tarihi, Trial Period End Date,Deneme Süresi Bitiş Tarihi, Current Invoice Start Date,Mevcut Fatura Başlangıç Tarihi, 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ı, +Days Until Due,Bitişine Kalan Gün Sayısı, +Number of days that the subscriber has to pay invoices generated by this subscription,Abonenin bu abonelik tarafından faturalarının kesilmesi zorunlu olduğu gün miktarı, Cancel At End Of Period,Dönem Sonunda İptal, Generate Invoice At Beginning Of Period,Dönem Başında Fatura Yaratın, Plans,Planlar, @@ -5232,27 +5232,27 @@ Subscription Plan,Abonelik Planı, 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.", -Payment Plan,Ödeme planı, +"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ı, örnek 'Günler' ve Faturalama Aralığı 3 ise, faturalar her 3 günde bir oluşturur.", +Payment Plan,Ödeme tesisi, Subscription Plan Detail,Abonelik Planı Ayrıntısı, Plan,Plan, -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., +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 faturadan önce faturanın bitiminden sonraki gün sayısı geçmiştir., Prorate,eşit olarak dağıtmak, Tax Rule,Vergi Kuralı, Tax Type,Vergi Türü, -Use for Shopping Cart,Alışveriş Sepeti kullanın, +Use for Shopping Cart,Alışveriş Sepeti kullanımı, Billing City,Fatura Şehri, Billing County,Fatura İlçesi, -Billing State,Fatura Kamu, -Billing Zipcode,Fatura posta kodu, +Billing State,Fatura İlçesi/Eyaleti, +Billing Zipcode,Fatura Posta kodu, Billing Country,Fatura Ülkesi, -Shipping City,Nakliye Şehri, -Shipping County,Kargo İlçe, -Shipping State,Nakliye Devlet, -Shipping Zipcode,Posta kodu, -Shipping Country,Nakliye Ülke, +Shipping City,Sevkiyat Şehri, +Shipping County,Sevkiyat İlçe, +Shipping State,Sevkiyat Devleti, +Shipping Zipcode,Sevkiyat kodu, +Shipping Country,Sevkiyat Ülkesi, Tax Withholding Account,Vergi Stopaj Hesabı, Tax Withholding Rates,Vergi Stopaj Oranları, Rates,Oranlar, @@ -5260,69 +5260,69 @@ Tax Withholding Rate,Vergi Stopaj Oranı, Single Transaction Threshold,Tek İşlem Eşiği, Cumulative Transaction Threshold,Kümülatif İşlem Eşiği, Agriculture Analysis Criteria,Tarımsal Analiz Kriterleri, -Linked Doctype,Bağlı Doctype, +Linked Doctype,Bağlı Doküman, Water Analysis,Su Analizi, Soil Analysis,Toprak Analizi, Plant Analysis,Bitki Analizi, Fertilizer,Gübre, -Soil Texture,Toprak dokusu, +Soil Texture,Toprak Dokusu, Weather,Hava, -Agriculture Manager,Tarım Müdürü, -Agriculture User,Tarım Kullanıcı, +Agriculture Manager,Tarım Yöneticisi, +Agriculture User,Tarım Kullanıcısı, Agriculture Task,Tarım Görevi, Task Name,Görev Adı, Start Day,Başlangıç Günü, -End Day,Gün sonu, +End Day,Gün Sonu, Holiday Management,Tatil Yönetimi, Ignore holidays,Tatilleri göz ardı et, Previous Business Day,Önceki İş Günü, -Next Business Day,Bir sonraki iş günü, +Next Business Day,Bir sonraki iş gününde, Urgent,Acil, -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.", +Crop,Mahsul, +Crop Name,Mahsul 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 dikkat 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ü, -Biennial,iki yıllık, -Planting UOM,Dikim UOM, +Perennial,Uzun ömürlü, +Biennial,İki yıllık, +Planting UOM,Dikim Birimi, Planting Area,Dikim Alanı, -Yield UOM,Verim UOM, -Materials Required,Gerekli malzemeler, +Yield UOM,Verim ölçü birimi, +Materials Required,gerekli özellikler, Produced Items,Üretilen Ürünler, -Produce,Üretmek, +Produce,Üret, Byproducts,Yan ürünler, -Linked Location,Bağlantılı Konum, +Linked Location,Bağ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", +This will be day 1 of the crop cycle,"Bu, sarfiyatı 1. kademeleri", ISO 8601 standard,ISO 8601 standardı, Cycle Type,Döngü Türü, -Less than a year,Bir yıldan daha az, -The minimum length between each plant in the field for optimum growth,Optimal büyüme için tarladaki her bitki arasındaki minimum uzunluk, +Less than a year,Bir koleksiyonu daha az, +The minimum length between each plant in the field for optimum growth,Optimal büyüme için tarladaki her bitki arasındaki minimum uzunluklar, The minimum distance between rows of plants for optimum growth,Optimum büyüme için bitki sıraları arasındaki minimum mesafe, Detected Diseases,Algılanan Hastalıklar, -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.", +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 liste. Seçildiğinde, hastalıkla başa çıkmak için programların bir listesine 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, +Common Name,Yaygın Adı, Treatment Task,Tedavi Görevi, Treatment Period,Tedavi Süresi, Fertilizer Name,Gübre Adı, Density (if liquid),Yoğunluk (sıvı varsa), Fertilizer Contents,Gübre İçeriği, -Fertilizer Content,Gübre İçerik, +Fertilizer Content,Gübre İçeriği, Linked Plant Analysis,Bağlı Bitki Analizi, Linked Soil Analysis,Bağlı Toprak Analizi, Linked Soil Texture,Bağlı Toprak Doku, Collection Datetime,Koleksiyon Datetime, Laboratory Testing Datetime,Laboratuvar Testi Datetime, Result Datetime,Sonuç Sonrası Tarih, -Plant Analysis Criterias,Bitki Analizi Kriterleri, +Plant Analysis Criterias,Bitki Analiz Kriterleri, Plant Analysis Criteria,Bitki Analiz Kriterleri, Minimum Permissible Value,Minimum İzin Verilebilir Değer, Maximum Permissible Value,Maksimum İzin Verilebilir Değer, @@ -5330,57 +5330,57 @@ Ca/K,Ca / K, Ca/Mg,Ca / Mg, Mg/K,Mg / K, (Ca+Mg)/K,(Ca+Mg)/K, -Ca/(K+Ca+Mg),"Ca / (K +, Ca + Mg)", +Ca/(K+Ca+Mg),"Ca / (K+, Ca+Mg)", Soil Analysis Criterias,Toprak Analiz Kriterleri, Soil Analysis Criteria,Toprak Analiz Kriterleri, -Soil Type,Toprak tipi, -Loamy Sand,Loanty Sand, -Sandy Loam,Kumlu kumlu, -Loam,verimli toprak, -Silt Loam,Silt kumu, +Soil Type,Toprak Tipi, +Loamy Sand,Ödünç Kum, +Sandy Loam,Kumlu Tın, +Loam,Verimli toprak, +Silt Loam,Alüvyon kumu, Sandy Clay Loam,Kumlu killi balçık, Clay Loam,Killi toprak, -Silty Clay Loam,Silty Clay Loam, +Silty Clay Loam,Siltli Kil Tın, Sandy Clay,Kumlu kil, -Silty Clay,Silty Clay, +Silty Clay,Siltli Kil, Clay Composition (%),Kil Kompozisyonu (%), Sand Composition (%),Kum Bileşimi (%), -Silt Composition (%),Silt Kompozisyonu (%), +Silt Composition (%),Silt Kompozisyon (%), 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ığı, +Collection Temperature ,Toplam Sıcaklık, +Storage Temperature,Depolama Sıcaklığı, Appearance,Görünüm, -Person Responsible,Sorumlu kişi, +Person Responsible,Sorumlu Kişi, Water Analysis Criteria,Su Analiz Kriterleri, Weather Parameter,Hava Durumu Parametresi, ACC-ASS-.YYYY.-,ACC-ASS-.YYYY.-, Asset Owner,Varlık Sahibi, Asset Owner Company,Varlık Sahibi Firma, -Custodian,bekçi, -Disposal Date,Bertaraf tarihi, -Journal Entry for Scrap,Hurda için kayıt girişi, +Custodian,Bekçi, +Disposal Date,Bertaraf Tarihi, +Journal Entry for Scrap,Hurda için Yevmiye Kaydı, Available-for-use Date,Kullanılabileceği Tarih, Calculate Depreciation,Amortisman Hesapla, Allow Monthly Depreciation,Aylık Amortismana İzin Ver, -Number of Depreciations Booked,Amortismanlar sayısı rezervasyonu, -Finance Books,Finans Kitapları, +Number of Depreciations Booked,Amortisman miktarı tayini, +Finance Books,Mali Defter, Straight Line,Düz Çizgi, Double Declining Balance,Çift Azalan Bakiye, Manual,Manuel, Value After Depreciation,Amortisman sonra değer, -Total Number of Depreciations,Amortismanlar Sayısı, +Total Number of Depreciations,Amortisman Sayısı, Frequency of Depreciation (Months),Amortisman Frekans (Ay), Next Depreciation Date,Bir sonraki değer kaybı tarihi, Depreciation Schedule,Amortisman Programı, Depreciation Schedules,Amortisman Çizelgeleri, -Insurance details,Sigorta ayrıntıları, +Insurance details,Sigorta detayları, Policy number,Poliçe numarası, Insurer,sigortacı, -Insured value,Sigortalanmış değeri, +Insured value,Sigortalanmış değer, Insurance Start Date,Sigorta Başlangıç Tarihi, Insurance End Date,Sigorta Bitiş Tarihi, Comprehensive Insurance,Kapsamlı Sigorta, @@ -5388,26 +5388,26 @@ Maintenance Required,Bakım gerekli, Check if Asset requires Preventive Maintenance or Calibration,Varlık Önleyici Bakım veya Kalibrasyon gerektirir kontrol edin, 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 Müdürü, +Default Finance Book,Varsayılan Mali Defter, +Quality Manager,Kalite Yöneticisi, 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, -Finance Book Detail,Finans Kitap Detayı, +Enable Capital Work in Progress Accounting,Yarı Mamül Muhasebesini Etkinleştirin, +Finance Book Detail,Mali Defter Detayı, Asset Category Account,Varlık Tipi Hesabı, -Fixed Asset Account,Sabit Varlık Hesabı, +Fixed Asset Account,Sabit Kıymet Hesabı, Accumulated Depreciation Account,Birikmiş Amortisman Hesabı, Depreciation Expense Account,Amortisman Giderleri Hesabı, -Capital Work In Progress Account,İlerleme Hesabında Sermaye Çalışması, -Asset Finance Book,Varlık Finans Kitabı, +Capital Work In Progress Account,Sermaye Yarı Mamül Hesabı, +Asset Finance Book,Varlık Mali Defteri, Written Down Value,Yazılı Değer, 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, +In Percentage,yüzde olarak, +Maintenance Team,bakım ekibi, Maintenance Manager Name,Bakım Yöneticisi Adı, Maintenance Tasks,Bakım Görevleri, -Manufacturing User,Üretim Kullanıcı, +Manufacturing User,Üretim Kullanıcısı, Asset Maintenance Log,Varlık Bakım Günlüğü, ACC-AML-.YYYY.-,ACC-AML-.YYYY.-, Maintenance Type,Bakım Türü, @@ -5419,7 +5419,7 @@ 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,ayarlama, +Calibration,ayarlamak, 2 Yearly,2 Yıllık, Certificate Required,Sertifika Gerekli, Assign to Name,İsme Ata, @@ -5429,12 +5429,12 @@ Asset Maintenance Team,Varlık Bakım Ekibi, Maintenance Team Name,Bakım Takım Adı, Maintenance Team Members,Bakım Ekibi Üyeleri, Purpose,Amaç, -Stock Manager,Stok Müdürü, +Stock Manager,Stok Yöneticisi, Asset Movement Item,Varlık Hareketi Öğesi, Source Location,Kaynak Konum, -From Employee,Çalışanlardan, -Target Location,Hedef konum, -To Employee,Çalışanlara, +From Employee,çalışanlardan, +Target Location,hedef konum, +To Employee,çalışanlara, Asset Repair,Varlık Tamiri, ACC-ASR-.YYYY.-,ACC-ASR-.YYYY.-, Failure Date,Başarısızlık Tarihi, @@ -5443,72 +5443,72 @@ Repair Status,Onarım Durumu, Error Description,Hata tanımlaması, Downtime,Kesinti, Repair Cost,Tamir Ücreti, -Manufacturing Manager,Üretim Müdürü, +Manufacturing Manager,Üretim Yöneticisi, Current Asset Value,Mevcut Varlık Değeri, New Asset Value,Yeni Varlık Değeri, Make Depreciation Entry,Amortisman kaydı yap, -Finance Book Id,Finans Defteri Kimliği, +Finance Book Id,Mali Defter Kimliği, Location Name,Yer ismi, Parent Location,Ana Konum, Is Container,Konteyner mu, -Check if it is a hydroponic unit,Hidroponik bir birim olup olmadığını kontrol edin, +Check if it is a hydroponic unit,Hidroponik bir ünite olup olmadığını kontrol edin, Location Details,Konum Detayları, Latitude,Enlem, -Longitude,Boylam, +Longitude,boylam, Area,alan, 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ü, Buying Settings,Satınalma Ayarları, -Settings for Buying Module,Modülü satın almak için Ayarlar, -Supplier Naming By,Tedarikçi İsimlendirme, +Settings for Buying Module,Modülü satınalmak için Ayarlar, +Supplier Naming By,Tedarikçi Adlandırma, 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, +Backflush Raw Materials of Subcontract Based On,Taşeronluk Hammadde Maliyetini Şuna göre yap, +Material Transferred for Subcontract,Taşeron için Transfer Edilen Malzeme, 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'dur ve 110 birim aktarmanıza izin verilecektir.", 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., +Get Items from Open Material Requests,Açık Malzeme Talepleri Öğeleri Alındı, +Fetch items based on Default Supplier.,Varsayılan tedarikçiye göre öğeleri getirin., Required By,Gerekli, -Order Confirmation No,Sipariş Onayı No, +Order Confirmation No,Sipariş Onay No, Order Confirmation Date,Sipariş Onay Tarihi, -Customer Mobile No,Müşteri Mobil Hayır, -Customer Contact Email,Müşteri İletişim E-mail, +Customer Mobile No,Müşteri Mobil No, +Customer Contact Email,Müşteri İletişim E-posta, 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 tablosunda 'Depo' 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,Peşin Ödenen, -Tracking,Takip, -% Billed,% Faturalanan, +In Words will be visible once you save the Purchase Order.,Alış Siparişini kaydettiğinizde Yazıyla görünür olacaktır., +Advance Paid,Ödenen Avans, +Tracking,Takip etme, +% Billed,% Faturalandı, % Received,% Alındı, Ref SQ,Ref SQ, -Inter Company Order Reference,Şirketler Arası Sipariş Referansı, -Supplier Part Number,Tedarikçi Parti Numarası, +Inter Company Order Reference,Şirketler arası Sipariş Referansı, +Supplier Part Number,Tedarikçi Parça Numarası, 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,Battaniye Siparişine Karşı, -Blanket Order,Battaniye siparişi, -Blanket Order Rate,Battaniye Sipariş Hızı, +Against Blanket Order,Açık Siparişe Karşı, +Blanket Order,Açık Sipariş, +Blanket Order Rate,Açık Sipariş Oranı, Returned Qty,İade edilen Adet, -Purchase Order Item Supplied,Tedarik edilen Satınalma Siparişi Ürünü, +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 Adet, -Purchase Receipt Item Supplied,Tedarik edilen satın alma makbuzu ürünü, +Supplied Qty,verilen Adet, +Purchase Receipt Item Supplied,Tedarik edilen satınalma makbuzu ürünü, Current Stock,Güncel Stok, PUR-RFQ-.YYYY.-,PUR-TT-.YYYY.-, -For individual supplier,Bireysel tedarikçi, +For individual supplier,Bireysel tedarikçi için, Link to Material Requests,Malzeme Taleplerine Bağlantı, Message for Supplier,Tedarikçi için mesaj, Request for Quotation Item,Fiyat Teklif Talebi Kalemi, @@ -5517,96 +5517,96 @@ Request for Quotation Supplier,Fiyat Teklif Talebi Tedarikçisi, Send Email,E-posta Gönder, Quote Status,Alıntı Durumu, Download PDF,PDF İndir, -Supplier of Goods or Services.,Mal veya Hizmet alanı., +Supplier of Goods or Services.,Mal veya Hizmet Sağlayıcısı., Name and Type,Adı ve Türü, SUP-.YYYY.-,SUP-.YYYY.-, Default Bank Account,Varsayılan Banka Hesabı, -Is Transporter,Taşıyıcı, -Represents Company,Şirketi temsil eder, +Is Transporter,Nakliyeci mi, +Represents Company,Şirketi Temsil eder, Supplier Type,Tedarikçi Türü, -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'ları uyar, +Allow Purchase Invoice Creation Without Purchase Order,Satınalma Siparişi olmadan Satınalma Faturası Oluşturmaya İzin Ver, +Allow Purchase Invoice Creation Without Purchase Receipt,Satınalma İrsaliye olmadan Satınalma Faturası Oluşturmaya İzin Ver, +Warn RFQs,RFQ'ları Uyar, Warn POs,Dikkatli Uyarılar Uyar, -Prevent RFQs,RFQ'ları önle, -Prevent POs,PO'ları önle, +Prevent RFQs,RFQ'ları Önle, +Prevent POs,PO'ları Önle, Billing Currency,Fatura Para Birimi, -Default Payment Terms Template,Varsayılan Ödeme Koşulları Şablonu, -Block Supplier,Tedarikçi, +Default Payment Terms Template,Varsayılan Ödeme Vadesi Şablonu, +Block Supplier,Tedarikçiyi Engelle, Hold Type,Tutma Tipi, -Leave blank if the Supplier is blocked indefinitely,Tedarikçi süresiz olarak engellendiyse boş bırak, +Leave blank if the Supplier is blocked indefinitely,tedarikçi süresiz olarak engellendiyse boş bırakma, Default Payable Accounts,Standart Borç Hesapları, -Mention if non-standard payable account,Standart dışı borç hesabı ise, -Default Tax Withholding Config,Varsayılan Vergi Stopaj Yapılandırması, +Mention if non-standard payable account,Standart dışı borç hesabı varsa belirtin, +Default Tax Withholding Config,Varsayılan Vergi Durdurma Yapılandırması, Supplier Details,Tedarikçi Ayrıntıları, Statutory info and other general information about your Supplier,Tedarikçiniz hakkında yasal bilgiler ve diğer genel bilgiler, PUR-SQTN-.YYYY.-,PUR-SQTN-.YYYY.-, Supplier Address,Tedarikçi Adresi, -Link to material requests,materyal isteklere Bağlantı, +Link to material requests,Malzeme taleplerine bağlantı, 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 Zamanı gün olarak, +Is Subcontracted,Taşerona verildi, +Lead Time in days,Teslim Süresi gün olarak, Supplier Score,Tedarikçi Puanı, Indicator Color,Gösterge Rengi, Evaluation Period,Değerlendirme Süresi, Per Week,Haftada, -Per Month,Her ay, +Per Month,onun ay, Per Year,Yıl başına, Scoring Setup,Puanlama Ayarları, Weighting Function,Ağırlıklandırma İşlevi, -"Scorecard variables can be used, as well as:\n{total_score} (the total score from that period),\n{period_number} (the number of periods to present day)\n","Puan kartı değişkenleri yanı sıra: {total_score} (o dönemin toplam puanı), {period_number} (mevcut gün sayısının sayısı)", +"Scorecard variables can be used, as well as:\n{total_score} (the total score from that period),\n{period_number} (the number of periods to present day)\n","Puan kartı değişkenleri yanı sıra: {total_score} (o dönem toplam puanı), {period_number} (mevcut gün genel sayısı)", Scoring Standings,Puanlama Puanları, Criteria Setup,Ölçütler Kurulumu, -Load All Criteria,Tüm Ölçütleri Yükle, +Load All Criteria,Tüm Ölçüleri Yükle, 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ın Alma Siparişi için Uyarı, -Notify Supplier,Tedarikçiye bildir, -Notify Employee,Çalışana bildir, +Warn for new Request for Quotations,Teklifler için yeni istek uyarısı yapın, +Warn for new Purchase Orders,Yeni Satınalma Siparişi için Uyarı, +Notify Supplier,tedarikçiye bildir, +Notify Employee,çalışana bildir, Supplier Scorecard Criteria,Tedarikçi Puan Kartı Kriterleri, Criteria Name,Ölçütler Adı, Max Score,Maksimum Skor, -Criteria Formula,Kriterler Formül, +Criteria Formula,Kriterler Formülü, Criteria Weight,Ölçütler Ağırlık, -Supplier Scorecard Period,Tedarikçi Puan Kartı Dönemi, +Supplier Scorecard Period,tedarikçisi Puan Kartı Dönemi, PU-SSP-.YYYY.-,PU-SSP-.YYYY.-, Period Score,Dönem Notu, Calculations,Hesaplamalar, Criteria,Kriterler, -Variables,Değişkenler, -Supplier Scorecard Setup,Tedarikçi Puan Kartı Kurulumu, +Variables,değişkenler, +Supplier Scorecard Setup,tedarikçisi Puan Kartı Kurulumu, Supplier Scorecard Scoring Criteria,Tedarikçi Puan Kartı Puanlama Kriterleri, Score,Gol, -Supplier Scorecard Scoring Standing,Tedarikçi Puan Kartı Puanlama, +Supplier Scorecard Scoring Standing,tedarikçi Puan Kartı Puanlama, Standing Name,Daimi Adı, -Purple,Mor, -Yellow,sarı, +Purple,mor, +Yellow,sari, Orange,Portakal, -Min Grade,Min Grade, +Min Grade,Asgari Not, Max Grade,Maksimum Sınıf, Warn Purchase Orders,Satınalma Siparişlerini Uyarın, Prevent Purchase Orders,Satınalma Siparişlerini Önleme, Employee ,Çalışan, -Supplier Scorecard Scoring Variable,Tedarikçi Puan Kartı Değişken Skorlama, -Variable Name,Değişken Adı, +Supplier Scorecard Scoring Variable,tedarikçisi Puan Kartı değişken Skorlama, +Variable Name,işletim Adı, Parameter Name,Parametre Adı, -Supplier Scorecard Standing,Tedarikçi Puan Kartı Daimi, +Supplier Scorecard Standing,Tedarikçi Puan Kartı Durumu, Notify Other,Diğerini bildir, Supplier Scorecard Variable,Tedarikçi Puan Kartı Değişkeni, -Call Log,Çağrı geçmişi, -Received By,Tarafından alındı, +Call Log,çağrı geçmişi, +Received By,gözaltına alındı, Caller Information,Arayan bilgisi, Contact Name,İrtibat İsmi, -Lead ,Öncülük etmek, -Lead Name,Potansiyel Müşteri Adı, -Ringing,çınlama, +Lead ,Müşteri Adayı , +Lead Name,Müşteri Aday Adı, +Ringing,Ringing, Missed,Kaçırılan, -Call Duration in seconds,Saniye cinsinden Çağrı Süresi, +Call Duration in seconds,Saniye süresi Çağrı Süresi, Recording URL,URL kaydetme, Communication Medium,Haberleşme Orta, -Communication Medium Type,İletişim Orta Tip, +Communication Medium Type,İletişim Orta İpucu, Voice,ses, Catch All,Tümünü Yakala, "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.", @@ -5614,16 +5614,16 @@ Timeslots,Zaman dilimleri, Communication Medium Timeslot,İletişim Orta Zaman Çizelgesi, 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ı, -Skype ID,Skype kullanıcı adı, -Linked Documents,Bağlantılı Belgeler, -Appointment With,İle randevu, +Phone Number,Telefon Numarası, +Skype ID,Skype ID, +Linked Documents,Bağlı Belgeler, +Appointment With,Randevu Bununla İlişkili, Calendar Event,Takvim Etkinliği, Appointment Booking Settings,Randevu Rezervasyon Ayarları, -Enable Appointment Scheduling,Randevu Zamanlamayı Etkinleştir, +Enable Appointment Scheduling,Randevu Zamanlamayı Etkinleştirme, Agent Details,Temsilci Detayları, Availability Of Slots,Yuvaların Kullanılabilirliği, Number of Concurrent Appointments,Eşzamanlı Randevu Sayısı, @@ -5631,50 +5631,50 @@ Agents,Ajanlar, Appointment Details,Randevu Detayları, Appointment Duration (In Minutes),Randevu Süresi (Dakika), Notify Via Email,E-posta ile Bildir, -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ı, +Notify customer and agent via email on the day of the appointment.,Randevu gününde e-posta yoluyla müşteriyi ve acenteyi bilgilendirin., +Number of days appointments can be booked in advance,Randevuların ölçü 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'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://alanadınız.com.tr/about" teslim yönlendirmeleri", Appointment Booking Slots,Randevu Rezervasyon Slotları, Day Of Week,Haftanın günü, -From Time ,Zamandan, +From Time ,Baş. Süresi, Campaign Email Schedule,Kampanya E-posta Programı, Send After (days),Sonra Gönder (gün), -Signed,İmzalanmış, -Party User,Parti Kullanıcısı, -Unsigned,imzasız, +Signed,İmzalandı, +Party User,Cari Kullanıcısı, +Unsigned,İmzalanmadı, Fulfilment Status,Yerine Getirilme Durumu, N/A,N / A, Unfulfilled,yerine getirilmemiş, Partially Fulfilled,Kısmen Yerine Getirildi, Fulfilled,Karşılanan, -Lapsed,Sona, +Lapsed,Süresi dolmuş, Contract Period,Sözleşme süresi, -Signee Details,Signee Detayları, -Signee,altına imza atanları, -Signed On,İmzalandı, +Signee Details,Signee Ayrıntıları, +Signee,İmza Atan, +Signed On,İmzalama tarihi, Contract Details,Sözleşme Detayları, Contract Template,Sözleşme Şablonu, -Contract Terms,Anlaşma koşulları, +Contract Terms,Sözleşme koşulları, Fulfilment Details,Yerine Getirme Detayları, Requires Fulfilment,Yerine Getirilmesi Gerekir, -Fulfilment Deadline,Son teslim tarihi, +Fulfilment Deadline,Son Teslim Tarihi, Fulfilment Terms,Yerine Getirme Koşulları, Contract Fulfilment Checklist,Sözleşme Yerine Getirilmesi Kontrol Listesi, -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ı, +Requirement,Gereklilik, +Contract Terms and Conditions,Sözleşme Hüküm ve Hükümleri, +Fulfilment Terms and Conditions,Yerine Getirme Hükümleri ve Hükümleri, 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,Kurşun bir Teşkilattır, CRM-LEAD-.YYYY.-,CRM-KURŞUN-.YYYY.-, Person Name,Kişi Adı, -Lost Quotation,Kayıp Teklif, +Lost Quotation,Teklif Kaybedildi, Interested,İlgili, -Converted,Dönüştürülmüş, -Do Not Contact,İrtibata Geçmeyin, +Converted,Dönüştürüldü, +Do Not Contact,İletişime Geçme, From Customer,Müşteriden, Campaign Name,Kampanya Adı, Follow Up,Takip et, @@ -5683,7 +5683,7 @@ Next Contact Date,Sonraki İrtibat Tarihi, Ends On,Bitiş Tarihi, Address & Contact,Adres ve İrtibat, Mobile No.,Cep No, -Lead Type,Potansiyel Müşteri Tipi, +Lead Type,Aday Tipi, Channel Partner,Kanal Ortağı, Consultant,Danışman, Market Segment,Pazar Segmenti, @@ -5692,46 +5692,46 @@ Request Type,İstek Türü, Product Enquiry,Ürün Sorgulama, Request for Information,Bilgi İsteği, Suggestions,Öneriler, -Blog Subscriber,Blog Abone, +Blog Subscriber,Blog Abonesi, LinkedIn Settings,LinkedIn Ayarları, -Company ID,Şirket Kimliği, +Company ID,Şirket ID, OAuth Credentials,OAuth Kimlik Bilgileri, -Consumer Key,Tüketici anahtarı, -Consumer Secret,tüketici mahremiyeti, -User Details,Kullanıcı detayları, +Consumer Key,Consumer Key, +Consumer Secret,Consumer Secret, +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, +Opportunity Lost Reason,Fırsat Kayıp Nedeni, +Potential Sales Deal,Potansiyel Satış Anlaşması, CRM-OPP-.YYYY.-,CRM-OPP-.YYYY.-, -Opportunity From,Fırsattan itibaren, -Customer / Lead Name,Müşteri/ İlk isim, +Opportunity From,Fırsat Nerden, +Customer / Lead Name,Müşteri / Aday Adı, Opportunity Type,Fırsat Türü, -Converted By,Tarafından Dönüştürüldü, -Sales Stage,Satış aşaması, +Converted By,Dönüştüren, +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, Probability (%),Olasılık (%), -Contact Info,İletişim Bilgileri, -Customer / Lead Address,Müşteri Adresi, -Contact Mobile No,İrtibat Mobil No, +Contact Info,İletişim Bilgisi, +Customer / Lead Address,Müşteri / Aday Adresi, +Contact Mobile No,İletişim Cep No, 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,Sahne adı, +Stage Name,Aşama Adı, Social Media Post,Sosyal Medya Gönderisi, -Post Status,Gönderi Durumu, +Post Status,Gönderim Durumu, Posted,Gönderildi, Share On,Paylaş, -Twitter,Twitter, +Twitter,twitter, LinkedIn,LinkedIn, -Twitter Post Id,Twitter Gönderi Kimliği, -LinkedIn Post Id,LinkedIn Gönderi Kimliği, -Tweet,Cıvıldamak, +Twitter Post Id,Twitter Gönderim Kimliği, +LinkedIn Post Id,LinkedIn Gönderim Kimliği, +Tweet,Civildamak, Twitter Settings,Twitter Ayarları, API Secret Key,API Gizli Anahtarı, Term Name,Dönem Adı, @@ -5741,42 +5741,42 @@ Academics User,Akademik Kullanıcı, Academic Year Name,Akademik Yıl Adı, Article,makale, LMS User,LMS Kullanıcısı, -Assessment Criteria Group,Değerlendirme Ölçütleri Grup, +Assessment Criteria Group,Değerlendirme Ölçüleri Grup, Assessment Group Name,Değerlendirme Grubu Adı, Parent Assessment Group,Veli Değerlendirme Grubu, Assessment Name,Değerlendirme Adı, -Grading Scale,Notlandırma ölçeği, +Grading Scale,Notlandırma cihazı, Examiner,müfettiş, -Examiner Name,sınav Adı, -Supervisor,supervisor, +Examiner Name,sınav adı, +Supervisor,süpervizör, Supervisor Name,Süpervizör Adı, -Evaluate,Değerlendirmek, +Evaluate,değerlendirme, Maximum Assessment Score,Maksimum Değerlendirme Puanı, Assessment Plan Criteria,Değerlendirme Planı Kriterleri, Maximum Score,Maksimum Skor, Result,Sonuç, -Total Score,Toplam puan, +Total Score,toplam puan, Grade,sınıf, Assessment Result Detail,Değerlendirme Sonuçlarının Ayrıntıları, Assessment Result Tool,Değerlendirme Sonucu Aracı, -Result HTML,Sonuç HTML, +Result HTML,sonuç HTML, Content Activity,İçerik Etkinliği, -Last Activity ,son Aktivite, +Last Activity ,oğlu Aktivite, Content Question,İçerik Sorusu, Question Link,Soru Bağlantısı, Course Name,Ders Adı, -Topics,Başlıklar, +Topics,başlıklar, Hero Image,Kahraman Resmi, Default Grading Scale,Varsayılan Derecelendirme Ölçeği, -Education Manager,Eğitim Müdürü, +Education Manager,Eğitim Yöneticisi, Course Activity,Kurs Etkinliği, -Course Enrollment,Kurs Kayıt, +Course Enrollment,Kür Kayıt, Activity Date,Faaliyet Tarihi, Course Assessment Criteria,Ders Değerlendirme Kriterleri, Weightage,Ağırlık, Course Content,Kurs içeriği, Quiz,bilgi yarışması, -Program Enrollment,programı Kaydı, +Program Enrollment,programı kayıdı, Enrollment Date,başvuru tarihi, Instructor Name,Öğretim Elemanının Adı, EDU-CSH-.YYYY.-,EDU-CSH-.YYYY.-, @@ -5792,30 +5792,30 @@ Current Academic Year,Mevcut Akademik Yıl, 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.", -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.", +"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ıttan her Öğrenci için geçerli olmayacaktır.", +Validate Enrolled Course for Students in Student Group,Kayıtlı Dersi Grubu Öğrenci Öğ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ı'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.", +"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şturur. 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, -Employee Number,Çalışan sayısı, +Employee Number,çalışan sayısı, Fee Category,Ücret Kategorisi, Fee Component,Ücret Bileşeni, -Fees Category,Ücretler Kategori, -Fee Schedule,Ücret tarifesi, +Fees Category,Ücretler Kategorisi, +Fee Schedule,ücret Tarifesi, Fee Structure,ücret Yapısı, EDU-FSH-.YYYY.-,EDU-FSH .YYYY.-, Fee Creation Status,Ücret Oluşturma Durumu, -In Process,Süreci, +In Process,Devam ediyor, 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, -Institution,kurum, +Institution,Kurum, Fee Schedule Program,Ücret Programı Programı, -Student Batch,Öğrenci Toplu, +Student Batch,Öğrenci Grubu, Total Students,Toplam Öğrenci, Fee Schedule Student Group,Ücret Programı Öğrenci Grubu, EDU-FST-.YYYY.-,EGT-FST-.YYYY.-, @@ -5824,24 +5824,24 @@ Include Payment,Ödeme Dahil Et, Send Payment Request,Ödeme Talebi Gönderme, Student Details,Öğrenci Ayrıntıları, Student Email,Öğrenci E-postası, -Grading Scale Name,Not Verme Ölçeği Adı, -Grading Scale Intervals,Not Verme Ölçeği Aralıkları, +Grading Scale Name,Değil Verme Ölçeği Adı, +Grading Scale Intervals,Değil Verme Ölçeği Aralıkları, Intervals,Aralıklar, Grading Scale Interval,Not Verme Ölçeği Aralığı, -Grade Code,sınıf Kodu, -Threshold,eşik, -Grade Description,sınıf Açıklama, -Guardian,vasi, -Guardian Name,Muhafız adı, -Alternate Number,alternatif Numara, +Grade Code,Sınıf Kodu, +Threshold,Eşik, +Grade Description,açıklama sınıfı, +Guardian,Veli, +Guardian Name,Veli adı, +Alternate Number,Alternatif Numara, Occupation,Meslek, -Work Address,İş adresi, -Guardian Of ,Of The Guardian, +Work Address,iş adresi, +Guardian Of ,Velinin, Students,Öğrenciler, -Guardian Interests,Guardian İlgi, -Guardian Interest,Guardian İlgi, +Guardian Interests,Veli İlgi Alanları, +Guardian Interest,Veli İlgi Alanı, Interest,Faiz, -Guardian Student,Guardian Öğrenci, +Guardian Student,Veli Öğrenci, EDU-INS-.YYYY.-,EDU-INS-.YYYY.-, Instructor Log,Eğitmen Günlüğü, Other details,Diğer Detaylar, @@ -5853,35 +5853,35 @@ Courses,Dersler, Is Published,Yayınlandı, Allow Self Enroll,Kendi Kendine Kayda İzin Ver, Is Featured,Özellikli, -Intro Video,Tanıtım Videosu, +Intro Video,Tanıtım Videoları, Program Course,programı Ders, -School House,Okul Evi, +School House,okul evi, 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, -Self-Driving Vehicle,Kendinden Sürüşlü Araç, +Institute's Bus,Enstitü Otobüsü, +Public Transport,toplu taşıma, +Self-Driving Vehicle,kendinden tahrikli araç, Pick/Drop by Guardian,Koruyucu tarafından Pick / Bırak, Enrolled courses,Kayıtlı kurslar, Program Enrollment Course,Program Kayıt Kursu, Program Enrollment Fee,Program Kayıt Ücreti, Program Enrollment Tool,Programı Kaydı Aracı, -Get Students From,Gönderen Öğrenciler alın, -Student Applicant,Öğrenci Başvuru, -Get Students,Öğrenciler alın, +Get Students From,Gönderen öğrenciler alındı, +Student Applicant,Öğrenci Başvurusu, +Get Students,öğrenciler alınıyor, Enrollment Details,Kayıt Ayrıntıları, New Program,yeni Program, New Student Batch,Yeni Öğrenci Toplu İşi, -Enroll Students,Öğrenciler kayıt, +Enroll Students,öğrenci kayıt, New Academic Year,Yeni Akademik Yıl, New Academic Term,Yeni Akademik Dönem, -Program Enrollment Tool Student,Programı Kaydı Aracı Öğrenci, +Program Enrollment Tool Student,Programı Kaydı Öğrenci Aracı, Student Batch Name,Öğrenci Toplu Adı, Program Fee,Program Ücreti, -Question,Soru, +Question,soru, Single Correct Answer,Tek Doğru Cevap, -Multiple Correct Answer,Çoklu Doğru Cevap, +Multiple Correct Answer,Çokluk Doğru Cevap, Quiz Configuration,Sınav Yapılandırması, Passing Score,Geçme puanı, Score out of 100,100 üzerinden puan, @@ -5892,26 +5892,26 @@ Latest Highest Score,En Son En Yüksek Puan, Latest Attempt,Son Girişim, Quiz Activity,Sınav Etkinliği, Enrollment,kayıt, -Pass,Geçiş, +Pass,geçiş, Quiz Question,Sınav Sorusu, Quiz Result,Sınav Sonucu, Selected Option,Seçili Seçenek, Correct,Doğru, -Wrong,Yanlış, -Room Name,Oda ismi, +Wrong,yanlış, +Room Name,oda ismi, Room Number,Oda numarası, -Seating Capacity,Oturma kapasitesi, +Seating Capacity,oturma kapasitesi, House Name,Evin adı, EDU-STU-.YYYY.-,EDU-STU-.YYYY.-, Student Mobile Number,Öğrenci Cep Numarası, Joining Date,birleştirme tarihi, -Blood Group,Kan grubu, -A+,A+, +Blood Group,kan grubu, +A+,+, A-,A-, B+,B+, B-,B-, O+,O +, -O-,O-, +O-,Ö-, AB+,AB+, AB-,AB-, Nationality,milliyet, @@ -5919,10 +5919,10 @@ Home Address,Ev adresi, Guardian Details,Guardian Detayları, Guardians,Veliler, Sibling Details,kardeş Detaylar, -Siblings,Kardeşler, +Siblings,kardeşler, Exit,Çıkış, Date of Leaving,Ayrılış tarihi, -Leaving Certificate Number,Sertifika Numarası Leaving, +Leaving Certificate Number,Sertifika Numarası Ayrılıyor, Reason For Leaving,Ayrılma sebebi, Student Admission,Öğrenci Kabulü, Admission Start Date,Kabul Başlangıç Tarihi, @@ -5930,11 +5930,11 @@ Admission End Date,Kabul Bitiş Tarihi, 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ş, +Minimum Age,asgari yaş, Maximum Age,Maksimum Yaş, -Application Fee,Başvuru ücreti, -Naming Series (for Student Applicant),Seri İsimlendirme (Öğrenci Başvuru için), -LMS Only,Sadece LMS, +Application Fee,başvuru ücreti, +Naming Series (for Student Applicant),Seri İsimlendirme (Öğrenci Başvurusu için), +LMS Only,sadece LMS, EDU-APP-.YYYY.-,EDU-APP-.YYYY.-, Application Status,Başvuru Durumu, Application Date,Başvuru Tarihi, @@ -5944,24 +5944,24 @@ Students HTML,Öğrenciler HTML, Group Based on,Ona Dayalı Grup, Student Group Name,Öğrenci Grubu Adı, Max Strength,Maksimum Güç, -Set 0 for no limit,hiçbir sınırı 0 olarak ayarlayın, -Instructors,Ders, +Set 0 for no limit,hiçbir sınırı 0 olarak ayarlamak, +Instructors,ders, 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., +Leave blank if you make students groups per year,Öğrenci gruplarını yılda bir kere boş bırakın., Get Courses,Kursları alın, Separate course based Group for every Batch,Her Toplu İş için Ayrılmış Kurs Tabanlı Grup, -Leave unchecked if you don't want to consider batch while making course based groups. ,"Kurs temelli gruplar yaparken toplu düşünmeyi istemiyorsanız, işaretlemeyin.", +Leave unchecked if you don't want to consider batch while making course based groups. ,"Kurs temelli gruplar yaparken toplu düşünmeyi sonlandırın, gecen.", Student Group Creation Tool Course,Öğrenci Grubu Oluşturma Aracı Kursu, -Course Code,Kurs kodu, -Student Group Instructor,Öğrenci Grubu Eğitmeni, -Student Group Student,Öğrenci Grubu Öğrenci, +Course Code,Kür kodu, +Student Group Instructor,Öğrenci Grubu Eğitimi, +Student Group Student,Öğrenci Öğrenci Grubu, Group Roll Number,Grup Rulosu Numarası, -Student Guardian,Öğrenci Guardian, +Student Guardian,Öğrenci Velisi, Relation,İlişki, Mother,Anne, Father,Baba, Student Language,Öğrenci Dili, -Student Leave Application,Öğrenci bırak Uygulaması, +Student Leave Application,Öğrenci Bırakma Uygulaması, Mark as Present,Şimdiki olarak işaretle, Student Log,Öğrenci Günlüğü, Academic,Akademik, @@ -5972,59 +5972,59 @@ Show Marks,İşaretleri Göster, Add letterhead,Antetli Kağıt Ekle, Print Section,Baskı bölümü, Total Parents Teacher Meeting,Toplam Veliler Öğretmen Toplantısı, -Attended by Parents,Ebeveynlerin Katıldığı, -Assessment Terms,Değerlendirme şartları, +Attended by Parents,bireylerin katıldığı, +Assessment Terms,değerlendirme şartları, Student Sibling,Öğrenci Kardeş, -Studying in Same Institute,Aynı Enstitüsü incelenmesi, +Studying in Same Institute,Aynı enstitüyü incelemek, NO,HAYIR, YES,EVET, Student Siblings,Öğrenci Kardeşleri, Topic Content,Konu İçeriği, Amazon MWS Settings,Amazon MWS Ayarları, ERPNext Integrations,ERPNext Entegrasyonları, -Enable Amazon,Amazon'u etkinleştir, +Enable Amazon,Amazon u etkinleştir, MWS Credentials,MWS Kimlik Bilgileri, Seller ID,Satıcı Kimliği, AWS Access Key ID,AWS Erişim Anahtarı Kimliği, -MWS Auth Token,MWS Auth Jetonu, +MWS Auth Token,MWS Kimlik Doğrulama Jetonu, Market Place ID,Pazar Yeri Kimliği, AE,AE, -AU,AU, +AU,au, BR,BR, CA,CA, CN,CN, -DE,DE, +DE,Almanya, ES,ES, FR,FR, -IN,İÇİNDE, +IN,IN, JP,JP, -IT,O, +IT,Ö, MX,MX, -UK,UK, +UK,Birleşik Krallık, US,BİZE, -Customer Type,müşteri tipi, -Market Place Account Group,Market Place Hesap Grubu, +Customer Type,Müşteri Tipi, +Market Place Account Group,Pazar Yeri Hesap Grubu, After Date,Tarihten sonra, -Amazon will synch data updated after this date,Amazon bu tarihten sonra güncellenen verileri senkronize edecek, +Amazon will synch data updated after this date,Amazon bu kapsamdan sonra güncellenen veriler senkronize edilecek, 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 ,Verginin 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ünlerini Amazon MWS'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., -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., +Click this button to pull your Sales Order data from Amazon MWS.,Amazon SMM'den Satış Siparişini çekmek için bu düğmeyi tıklayın., +Enable Scheduled Sync,Zamanlanmış Senkronizasyonu Etkinleştirin, +Check this to enable a scheduled Daily synchronization routine via scheduler,Zamanlayıcı ile programlanmış Günlük depolama rutinini kullanmak için bunu kontrol edin., Max Retry Limit,Maksimum Yeniden Deneme Sınırı, Exotel Settings,Exotel Ayarları, -Account SID,Hesap SID, +Account SID,Hesap SID'si, API Token,API Simgesi, -GoCardless Mandate,GoCardless Mandate, +GoCardless Mandate,GoCardless Yetkisi, Mandate,manda, GoCardless Customer,GoCardless Müşterisi, -GoCardless Settings,GoCardless Ayarları, -Webhooks Secret,Webhooks Sırrı, -Plaid Settings,Ekose Ayarlar, -Synchronize all accounts every hour,Tüm hesapları her saat başı senkronize et, +GoCardless Settings,GoCardsız Ayarları, +Webhooks Secret,Web kancaları Sırrı, +Plaid Settings,Ekose Ayarları, +Synchronize all accounts every hour,Tüm hesapları her saat başı senkronizasyon et, Plaid Client ID,Ekose Müşteri Kimliği, Plaid Secret,Ekose Sırrı, Plaid Environment,Ekose Çevre, @@ -6032,9 +6032,9 @@ sandbox,kum havuzu, development,gelişme, production,üretim, QuickBooks Migrator,QuickBooks Migrator, -Application Settings,Uygulama ayarları, +Application Settings,Uygulama Ayarları, Token Endpoint,Token Bitiş Noktası, -Scope,kapsam, +Scope,kapsama, Authorization Settings,Yetkilendirme Ayarları, Authorization Endpoint,Yetkilendirme Bitiş Noktası, Authorization URL,Yetkilendirme URL'si, @@ -6048,25 +6048,25 @@ Shopify Log,Shopify Günlüğü, Request Data,Veri İste, Shopify Settings,Shopify Ayarları, status html,durum html, -Enable Shopify,Shopify'ı etkinleştir, +Enable Shopify,Shopify Etkinleştir, App Type,Uygulama Türü, Last Sync Datetime,Son Senkronizasyon Tarihi, Shop URL,Mağaza URL'si, -eg: frappe.myshopify.com,örneğin: frappe.myshopify.com, +eg: frappe.myshopify.com,örnekleme: frappe.myshopify.com, Shared secret,Paylaşılan sır, Webhooks Details,Webhooks Ayrıntılar, Webhooks,Webhooks, -Customer Settings,Müşteri ayarları, +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'tan müşteriler senkronize iken seçilmiş grup 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 Teslimat Notu Oluşturmak İçin Varsayılan Depo, +Cash Account will used for Sales Invoice creation,Satış Faturası oluşturmak için Nakit Hesabı kullanımtır, +Update Price from Shopify To ERPNext Price List,ERPNext Fiyat Listesinden Shopify Güncelleme Fiyatı, +Default Warehouse to to create Sales Order and Delivery Note,Satış Siparişi ve İrsaliye Oluşturma İç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,Teslimat Notu 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'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, Sales Invoice Series,Satış Faturası Serisi, Shopify Tax Account,Vergi Hesabı Shopify, Shopify Tax/Shipping Title,Vergi / Kargo Başlığı, @@ -6074,18 +6074,18 @@ ERPNext Account,ERPNext Hesabı, Shopify Webhook Detail,Shopify Webhook Detayı, 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", +Master Data,Ana bileşenler, +"Data exported from Tally that consists of the Chart of Accounts, Customers, Suppliers, Addresses, Items and UOMs","Tally'den oluşan Hesap Planı, Müşteriler, Tedarikçiler, Adresler, Kalemler ve UOM'lardan aktarılan bağlantı", 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'de belirlendi, Tally Debtors Account,Tally Borçlular Hesabı, Debtors Account set in Tally,Borçlu Hesabı Tally'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, +Default UOM,varsayılan ölçü birimi, +UOM in case unspecified in imported data,İçe aktarılan bilgilerde belirtilmemiş olması durumunda UOM, ERPNext Company,ERPNext Şirketi, Your Company set in ERPNext,Şirketiniz ERPNext'te ayarlandı, Processed Files,İşlenmiş Dosyalar, @@ -6097,24 +6097,24 @@ 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, 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ı, +Woocommerce Settings,WooCommerce Ayarları, Enable Sync,Senkronizasyonu Etkinleştir, -Woocommerce Server URL,Woocommerce Sunucusu URL'si, +Woocommerce Server URL,WooCommerce Sunucusu URL'si, Secret,Gizli, -API consumer key,API tüketici anahtarı, -API consumer secret,API tüketici sırrı, +API consumer key,API işletim anahtarı, +API consumer secret,API şifreleme sırrı, Tax Account,Vergi Hesabı, 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 company will be used to create Sales Orders.,Bu şirket Satış Siparişleri oluşturmak için kullanılacaktır., +Creation User,Yaratıcı 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ı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şlerini oluşturmak için kullanmaktır. Yedek depo "Mağazalar" dir., +"The fallback series is ""SO-WOO-"".",Geri dönüş serisi "SO-WOO-", +This company will be used to create Sales Orders.,Bu şirket Satış Siparişlerini oluşturmak için kullanmaktı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".", -Endpoints,Endpoints, -Endpoint,Son nokta, +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 servisleri 7 dosyadan itibaren.", +"This is the default UOM used for items and Sales orders. The fallback UOM is ""Nos"".","Bu, sunucu ve Satış siparişleri için kullanılan varsayılan UOM'dir. Geri dönüş UOM'si ""Nos"".", +Endpoints,uç noktalar, +Endpoint,son nokta, Antibiotic Name,Antibiyotik adı, Healthcare Administrator,Sağlık Yöneticisi, Laboratory User,Laboratuar Kullanıcısı, @@ -6123,17 +6123,17 @@ Default Duration (In Minutes),Varsayılan Süre (Dakika Olarak), Body Part,Vücut parçası, Body Part Link,Gövde Parçası Bağlantısı, HLC-CPR-.YYYY.-,HLC-CPR-.YYYY.-, -Procedure Template,Prosedür şablonu, -Procedure Prescription,Prosedür Reçete, +Procedure Template,gözenek şablonu, +Procedure Prescription,Cezalar Reçete, Service Unit,Servis Ünitesi, -Consumables,Sarf, -Consume Stock,Stok tüketmek, +Consumables,sarf, +Consume Stock,Stok tüketimi, Invoice Consumables Separately,Fatura Sarf Malzemelerini Ayrı Ayrı, Consumption Invoiced,Faturalandırılan Tüketim, Consumable Total Amount,Sarf Malzemesi Toplam Miktarı, Consumption Details,Tüketim Ayrıntıları, -Nursing User,Hemşirelik kullanıcısı, -Clinical Procedure Item,Klinik Prosedür Öğesi, +Nursing User,hemşirelik kullanıcı, +Clinical Procedure Item,Klinik görüntü öğesi, Invoice Separately as Consumables,Sarf Malzemeleri Olarak Ayrı Olarak Fatura, Transfer Qty,Miktarı Aktar, Actual Qty (at source/target),Fiili Miktar (kaynak / hedef), @@ -6142,16 +6142,16 @@ Allow Stock Consumption,Stok Tüketimine İzin Ver, Sample UOM,Örnek UOM, Collection Details,Koleksiyon Ayrıntıları, Change In Item,Öğede Değişim, -Codification Table,Codification Table, -Complaints,Şikayetler, +Codification Table,Kodlama Tablosu, +Complaints,şikayetçi, Dosage Strength,Dozaj Mukavemeti, Strength,kuvvet, Drug Prescription,İlaç Reçetesi, -Drug Name / Description,İlaç Adı / Açıklaması, +Drug Name / Description,İlaç Adı / Açıklama, 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 Birimi, Hour,Saat, Update Schedule,Programı Güncelle, Exercise,Egzersiz yapmak, @@ -6159,11 +6159,11 @@ Difficulty Level,Zorluk seviyesi, Counts Target,Hedefi Sayar, Counts Completed,Tamamlanan Sayımlar, Assistance Level,Yardım Düzeyi, -Active Assist,Aktif Asist, +Active Assist,Aktif Asistan, Exercise Name,Egzersiz Adı, -Body Parts,Vücut kısımları, +Body Parts,Vücut parçaları, Exercise Instructions,Egzersiz Talimatları, -Exercise Video,Egzersiz Videosu, +Exercise Video,Egzersiz Videoları, Exercise Steps,Egzersiz Adımları, Steps,Adımlar, Steps Table,Adım Tablosu, @@ -6172,11 +6172,11 @@ Max number of visit,Maks Ziyaret Sayısı, Visited yet,Henüz ziyaret edilmedi, Reference Appointments,Referans Randevuları, Valid till,Kadar geçerli, -Fee Validity Reference,Ücret Geçerlilik Referansı, +Fee Validity Reference,Ücret geçerlilik Referansı, Basic Details,Temel Ayrıntılar, HLC-PRAC-.YYYY.-,HLC-PRAC-.YYYY.-, Mobile,seyyar, -Phone (R),Telefon (R), +Phone (R),Telefon (Sağ), Phone (Office),Telefon (Ofis), Employee and User Details,Çalışan ve Kullanıcı Ayrıntıları, Hospital,Hastane, @@ -6192,73 +6192,73 @@ Allow Appointments,Randevulara İzin Ver, Allow Overlap,Çakışmaya İzin Ver, Inpatient Occupancy,Yatan Doluluk, Occupancy Status,Doluluk Durumu, -Vacant,Boş, +Vacant,boş, Occupied,Meşgul, Item Details,Ürün Detayları, UOM Conversion in Hours,Saatlerde UOM Dönüşüm, Rate / UOM,Oran / UOM, Change in Item,Öğeyi Değiştir, -Out Patient Settings,Out Patient Settings, -Patient Name By,Hasta Adı Tarafından, +Out Patient Settings,Dışarıdaki Hasta Ayarları, +Patient Name By,Hasta Adına göre, 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üşteriye karşı hasta faturaları oluşturulacaktır. Hasta oluşturmaken mevcut Müşteriyi çalıştırma.", 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.", -Registration Fee,Kayıt ücreti, -Automate Appointment Invoicing,Randevu Faturalandırmasını Otomatikleştirin, -Manage Appointment Invoice submit and cancel automatically for Patient Encounter,Randevu Faturasını Yönetme Hasta Encounter için otomatik olarak gönder ve iptal et, -Enable Free Follow-ups,Ücretsiz Takipleri Etkinleştir, -Number of Patient Encounters in Valid Days,Geçerli Günlerdeki Hasta Karşılaşma Sayısı, +Collect Fee for Patient Registration,Hasta Kaydı 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ışı maliyetlerine sahip yeni Hastalar oluşturacak ve yalnızca Kayıt Ücreti faturalandırma sonrasında etkinleştirilecektir.", +Registration Fee,kayıt ücreti, +Automate Appointment Invoicing,Randevu Faturalandırmasını Otomatikleştirme, +Manage Appointment Invoice submit and cancel automatically for Patient Encounter,Randevu Faturasını Yönetme Hasta Karşılaşma için otomatik olarak gönder ve iptal et, +Enable Free Follow-ups,Ücretsiz Takipleri Etkinleştirin, +Number of Patient Encounters in Valid Days,Uygulama Günlerindeki Hasta Karşılaşma Sayısı, The number of free follow ups (Patient Encounters in valid days) allowed,İzin verilen ücretsiz takip sayısı (geçerli günlerdeki Hasta Karşılaşmaları), -Valid Number of Days,Geçerli gün sayısı, +Valid Number of Days,geçerli gün sayısı, Time period (Valid number of days) for free consultations,Ücretsiz danışmanlık için süre (Geçerli gün sayısı), Default Healthcare Service Items,Varsayılan Sağlık Hizmeti Öğeleri, -"You can configure default Items for billing consultation charges, procedure consumption items and inpatient visits","Faturalama danışma ücretleri, prosedür tüketim kalemleri ve yatan hasta ziyaretleri için varsayılan Öğeleri yapılandırabilirsiniz.", -Clinical Procedure Consumable Item,Klinik Prosedür Sarf Malzemesi, +"You can configure default Items for billing consultation charges, procedure consumption items and inpatient visits","Faturalama süreleri, işletim tüketim kalemleri ve yatan hasta ziyaretleri için varsayılan Öğeleri yapılandırabilirsiniz.", +Clinical Procedure Consumable Item,Klinik çevre 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ı., -Default receivable accounts to be used to book Appointment charges.,Randevu ücretlerini ayırmak için kullanılacak varsayılan alacak hesapları., +Default income accounts to be used if not set in Healthcare Practitioner to book Appointment charges.,Randevu ücretleri için Sağlık Uygulandığında belirtilmemişse varsayılan gelir hesapları., +Default receivable accounts to be used to book Appointment charges.,Randevu ücretlerini sınırlama için kullanılacak varsayılan alacak hesapları., Out Patient SMS Alerts,Out Hasta SMS Uyarıları, -Patient Registration,Hasta Kayıt, +Patient Registration,Hasta Kaydı, Registration Message,Kayıt Mesajı, -Confirmation Message,Onay mesajı, +Confirmation Message,onay mesajı, Avoid Confirmation,Onaydan Kaçının, -Do not confirm if appointment is created for the same day,Aynı gün için randevu oluşturulup oluşturulmadığını teyit etmeyin, +Do not confirm if appointment is created for the same day,Aynı gün için randevu oluşturup oluşturmamasını teyit etmeyin, Appointment Reminder,Randevu Hatırlatıcısı, Reminder Message,Hatırlatma Mesajı, Remind Before,Daha Önce Hatırlat, Laboratory Settings,Laboratuar Ayarları, Create Lab Test(s) on Sales Invoice Submission,Satış Faturası Gönderiminde Laboratuvar Testleri Oluşturun, -Checking this will create Lab Test(s) specified in the Sales Invoice on submission.,"Bunu kontrol etmek, teslim edildiğinde Satış Faturasında belirtilen Laboratuar Testlerini oluşturacaktır.", +Checking this will create Lab Test(s) specified in the Sales Invoice on submission.,"Bunu kontrol etmek, teslim satış faturasında belirtilen Laboratuar Testlerini oluşturacaktır.", Create Sample Collection document for Lab Test,Laboratuvar Testi için Örnek Koleksiyon belgesi oluşturun, -Checking this will create a Sample Collection document every time you create a Lab Test,"Bunu işaretlemek, her Laboratuar Testi oluşturduğunuzda bir Örnek Koleksiyon belgesi oluşturacaktır.", -Employee name and designation in print,Basılı çalışan ismi ve ismi, -Check this if you want the Name and Designation of the Employee associated with the User who submits the document to be printed in the Lab Test Report.,Belgeyi gönderen Kullanıcı ile ilişkili Çalışanın Adının ve Tanımının Laboratuar Test Raporunda yazdırılmasını istiyorsanız bunu işaretleyin., +Checking this will create a Sample Collection document every time you create a Lab Test,"Bunu bulduk, her Laboratuar Testi oluşturduğunuzda bir Örnek Koleksiyon belgesi oluşturacaktır.", +Employee name and designation in print,Basili çalışan ismi ve ismi, +Check this if you want the Name and Designation of the Employee associated with the User who submits the document to be printed in the Lab Test Report.,Belgeyi gönderen Kullanıcı ile çalışanın Adının ve Tanımının Laboratuar Test Raporunda yazdırılmasını istemek onu incelemek., Do not print or email Lab Tests without Approval,Onay Olmadan Laboratuvar Testlerini yazdırmayın veya e-postayla göndermeyin, -Checking this will restrict printing and emailing of Lab Test documents unless they have the status as Approved.,"Onaylandı durumuna sahip olmadıkları sürece, bunun işaretlenmesi Lab Test belgelerinin yazdırılmasını ve e-posta ile gönderilmesini kısıtlayacaktır.", +Checking this will restrict printing and emailing of Lab Test documents unless they have the status as Approved.,"Onaylandı sınırlarına sahip olunmadığı sürece, bunun için işaretlenmesi Lab Test belgelerinin yazdırılmasını ve e-posta ile gizliliğini kısıtlayacaktır.", Custom Signature in Print,Baskıda Özel İmza, -Laboratory SMS Alerts,Laboratuar SMS Uyarıları, +Laboratory SMS Alerts,Laboratuvar SMS Uyarıları, Result Printed Message,Sonuç Yazdırılan Mesaj, Result Emailed Message,Sonuç E-postayla Gönderilen Mesaj, -Check In,Giriş, -Check Out,Çıkış yapmak, -HLC-INP-.YYYY.-,HLC-INP-.YYYY.-, -A Positive,A Pozitif, -A Negative,A Negatif, +Check In,giriş, +Check Out,çıkış yapmak, +HLC-INP-.YYYY.-,HLC-GİRİŞ-.YYYY.-, +A Positive,Pozitif, +A Negative,Bir Negatif, AB Positive,AB Pozitif, AB Negative,AB Negatif, B Positive,B Pozitif, B Negative,B Negatif, -O Positive,O Olumlu, +O Positive,Olumsuz, O Negative,O Negatif, -Date of birth,Doğum tarihi, +Date of birth,doğum tarihi, Admission Scheduled,Kabulü Planlanmış, Discharge Scheduled,Planlanan Deşarj, Discharged,taburcu, Admission Schedule Date,Kabul Takvimi Tarihi, -Admitted Datetime,Kabul edilen tarih, +Admitted Datetime,kabul edilen tarih, Expected Discharge,Beklenen Deşarj, Discharge Date,Deşarj Tarihi, Lab Prescription,Laboratuar Reçetesi, @@ -6267,53 +6267,53 @@ Test Created,Test Oluşturuldu, Submitted Date,Teslim Tarihi, Approved Date,Onaylanmış Tarih, Sample ID,Örnek Kimlik Numarası, -Lab Technician,Laboratuvar teknisyeni, -Report Preference,Rapor Tercihi, +Lab Technician,laboratuvar teknisyeni, +Report Preference,Tercih Raporu, Test Name,Test Adı, Test Template,Test Şablonu, Test Group,Test Grubu, Custom Result,Özel Sonuç, LabTest Approver,LabTest Onaylayıcısı, Add Test,Test Ekle, -Normal Range,Normal aralık, +Normal Range,normal aralık, Result Format,Sonuç Biçimi, Single,Tek, -Compound,bileşik, +Compound,ulaştırmak, Descriptive,Tanımlayıcı, Grouped,gruplanmış, -No Result,Sonuç yok, +No Result,sonuç yok, This value is updated in the Default Sales Price List.,Bu değer Varsayılan Satış Fiyatı Listesinde güncellenir., Lab Routine,Laboratuar rutini, Result Value,Sonuç Değeri, Require Result Value,Sonuç Değerini Gerektir, Normal Test Template,Normal Test Şablonu, -Patient Demographics,Hasta Demografi, +Patient Demographics,Hasta Demografisi, 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 Yapılandırmasında "Müşteriyi Hastaya Bağla" İşaretlenmişse ve mevcut bir Müşteri tercihiyse, Hesaplar evinde 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, Divorced,Ayrılmış, -Widow,Dul, +Widow,sıkıcı, Patient Relation,Hasta ilişkisi, "Allergies, Medical and Surgical History","Alerjiler, Tıp ve Cerrahi Tarihi", Allergies,Alerjiler, Medication,ilaç, -Medical History,Tıbbi geçmiş, +Medical History,tıbbi geçmiş, Surgical History,Cerrahi Tarih, -Risk Factors,Risk faktörleri, +Risk Factors,risk kuşağı, Occupational Hazards and Environmental Factors,Mesleki Tehlikeler ve Çevresel Faktörler, Other Risk Factors,Diğer Risk Faktörleri, Patient Details,Hasta Ayrıntıları, Additional information regarding the patient,Hastaya ilişkin ek bilgiler, HLC-APP-.YYYY.-,HLC-UYGULAMA-.YYYY.-, Patient Age,Hasta Yaşı, -Get Prescribed Clinical Procedures,Reçeteli Klinik Prosedürleri Alın, +Get Prescribed Clinical Procedures,Reçeteli Klinik cezaları Alıntı, Therapy,Terapi, Get Prescribed Therapies,Reçeteli Tedaviler Alın, -Appointment Datetime,Randevu Tarih Saat, +Appointment Datetime,Randevu Tarih Saati, Duration (In Minutes),Süre (Dakika Olarak), Reference Sales Invoice,Referans Satış Faturası, More Info,Daha Fazla Bilgi, @@ -6322,49 +6322,49 @@ Reminded,hatırlatıldı, HLC-PA-.YYYY.-,HLC-PA-.YYYY.-, Assessment Template,Değerlendirme Şablonu, Assessment Datetime,Değerlendirme Tarihi, -Assessment Description,Değerlendirme Açıklaması, -Assessment Sheet,Değerlendirme belgesi, +Assessment Description,Değerlendirme açıklaması, +Assessment Sheet,değerlendirme belgesi, Total Score Obtained,Elde Edilen Toplam Puan, Scale Min,Ölçek Min, Scale Max,Max Ölçek, Patient Assessment Detail,Hasta Değerlendirme Detayı, -Assessment Parameter,Değerlendirme Parametresi, -Patient Assessment Parameter,Hasta Değerlendirme Parametresi, +Assessment Parameter,Değerlendirme Parametreleri, +Patient Assessment Parameter,Hasta Değerlendirme Parametreleri, Patient Assessment Sheet,Hasta Değerlendirme Formu, Patient Assessment Template,Hasta Değerlendirme Şablonu, Assessment Parameters,Değerlendirme Parametreleri, Parameters,Parametreler, Assessment Scale,Değerlendirme Ölçeği, -Scale Minimum,Minimum Ölçek, +Scale Minimum,Asgari Ölçek, Scale Maximum,Maksimum Ölçek, HLC-ENC-.YYYY.-,HLC-ENC-.YYYY.-, Encounter Date,Karşılaşma Tarihi, Encounter Time,Karşılaşma Zamanı, Encounter Impression,Karşılaşma İzlenim, Symptoms,Semptomlar, -In print,Yazıcıda, +In print,yazıcıda, Medical Coding,Tıbbi Kodlama, -Procedures,prosedürler, +Procedures,muayenehaneler, Therapies,Terapiler, -Review Details,Ayrıntıları İnceleme, +Review Details,Ayrıntıları inceleme, Patient Encounter Diagnosis,Hasta Karşılaşma Teşhisi, Patient Encounter Symptom,Hasta Karşılaşma Semptomu, HLC-PMR-.YYYY.-,HLC-FTR-.YYYY.-, Attach Medical Record,Tıbbi Kayıt Ekleyin, Reference DocType,Referans Belge Türü, -Spouse,eş, -Family,Aile, +Spouse,Eş, +Family,aile, Schedule Details,Program Ayrıntıları, Schedule Name,Program Adı, Time Slots,Zaman dilimleri, Practitioner Service Unit Schedule,Uygulayıcı Hizmet Birimi Takvimi, -Procedure Name,Prosedür adı, +Procedure Name,tutuklu adı, Appointment Booked,Randevu Alındı, -Procedure Created,Oluşturulan Prosedür, +Procedure Created,Oluşturulan daire, HLC-SC-.YYYY.-,HLC-SC-.YYYY.-, -Collected By,Tarafından toplanan, -Particulars,Ayrıntılar, -Result Component,Sonuç Bileşeni, +Collected By,tarafından toplanan, +Particulars,Detaylar, +Result Component,Sonuç Bileşenleri, HLC-THP-.YYYY.-,HLC-THP-.YYYY.-, Therapy Plan Details,Tedavi Planı Ayrıntıları, Total Sessions,Toplam Oturumlar, @@ -6374,25 +6374,25 @@ No of Sessions,Oturum Sayısı, Sessions Completed,Tamamlanan Oturumlar, Tele,Tele, Exercises,Egzersizler, -Therapy For,Terapi İçin, +Therapy For,İçin Terapi, Add Exercises,Egzersiz Ekle, Body Temperature,Vücut Sıcaklığı, Presence of a fever (temp > 38.5 °C/101.3 °F or sustained temp > 38 °C/100.4 °F),Ateşin varlığı (sıcaklık> 38.5 ° C / 101.3 ° F veya sürekli> 38 ° C / 100.4 ° F), -Heart Rate / Pulse,Nabız / Darbe, +Heart Rate / Pulse,Nabiz / 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), +Respiratory rate,solunum hızı, +Normal reference range for an adult is 16–20 breaths/minute (RCP 2012),Bir ± için normal referans aralığı 16-20 nefes / dakika'dır (RCP 2012), Tongue,Dil, Coated,Kaplanmış, Very Coated,Çok Kaplamalı, Normal,Normal, Furry,Kürklü, -Cuts,keser, -Abdomen,karın bölgesi, -Bloated,şişmiş, -Fluid,akışkan, -Constipated,kabız, -Reflexes,refleksler, +Cuts,Keser, +Abdomen,Karın bölgesi, +Bloated,Şişmiş, +Fluid,Elinde bulundurmak, +Constipated,Kabız, +Reflexes,Refleksler, Hyper,Aşırı, Very Hyper,Çok hiper, One Sided,Tek taraflı, @@ -6402,22 +6402,22 @@ 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, Nutrition Values,Beslenme Değerleri, Height (In Meter),Yükseklik (Metrede), -Weight (In Kilogram),Ağırlık (Kilogram cinsinden), +Weight (In Kilogram),Ağırlık (Kilogram ölçüsü), BMI,BMI, -Hotel Room,Otel odası, +Hotel Room,otel odası, Hotel Room Type,Otel Oda Tipi, -Capacity,Kapasite, +Capacity,kapasite, Extra Bed Capacity,Ekstra Yatak Kapasitesi, -Hotel Manager,Otel yöneticisi, +Hotel Manager,otel yöneticisi, Hotel Room Amenity,Otel Odası İmkanları, Billable,Faturalandırılabilir, Hotel Room Package,Otel Oda Paketi, Amenities,Kolaylıklar, -Hotel Room Pricing,Otel Odasının Fiyatlandırması, -Hotel Room Pricing Item,Otel Oda Fiyatlandırması Öğe, -Hotel Room Pricing Package,Otel Odasında Fiyatlandırma Paketi, +Hotel Room Pricing,Otel Odası Fiyatlandırması, +Hotel Room Pricing Item,Otel Oda Fiyatlandırması Öğesi, +Hotel Room Pricing Package,Otel Odası Fiyatlandırma Paketi, Hotel Room Reservation,Otel Odaları Rezervasyonu, -Guest Name,Misafir adı, +Guest Name,misafir adı, Late Checkin,Geç Checkin, Booked,ayrılmış, Hotel Reservation User,Otel Rezervasyonu Kullanıcısı, @@ -6425,27 +6425,27 @@ Hotel Room Reservation Item,Otel Odasında Rezervasyon Öğesi, Hotel Settings,Otel Ayarları, Default Taxes and Charges,Standart Vergi ve Harçlar, Default Invoice Naming Series,Varsayılan Fatura Adlandırma Dizisi, -Additional Salary,Ek ücret, +Additional Salary,ek ücret, HR,İK, -HR-ADS-.YY.-.MM.-,HR-ADS-.YY .-. MM.-, -Salary Component,Maaş Bileşeni, -Overwrite Salary Structure Amount,Maaş Yapısı Miktarının Üzerine Yaz, -Deduct Full Tax on Selected Payroll Date,Seçilen Bordro Tarihinde Tam Vergiden düşme, +HR-ADS-.YY.-.MM.-,HR-ADS-.YY .-. AA.-, +Salary Component,Maaş Bileşenleri, +Overwrite Salary Structure Amount,Maaş Yapısı Miktarının Üzerine Yazma, +Deduct Full Tax on Selected Payroll Date,Seçilen Bordro Tarihinde Tam Vergiden Düşüş, Payroll Date,Bordro Tarihi, -Date on which this component is applied,Bu bileşenin uygulandığı tarih, +Date on which this component is applied,Bu ürünün kesinlik tarihi, Salary Slip,Bordro, Salary Component Type,Maaş Bileşeni Türü, -HR User,İK Kullanıcı, +HR User,İK Kullanıcısı, Appointment Letter,Randevu mektubu, Job Applicant,İş Başvuru Sahiibi, -Applicant Name,Başvuru sahibinin adı, +Applicant Name,başvuru sahibi adı, Appointment Date,Randevu Tarihi, Appointment Letter Template,Randevu Mektubu Şablonu, -Body,Vücut, +Body,vücut, Closing Notes,Kapanış Notları, Appointment Letter content,Randevu Mektubu içeriği, -Appraisal,Appraisal:Değerlendirme, -HR-APR-.YY.-.MM.,HR-APR-.YY.-.MM., +Appraisal,Ekspertiz:Değerlendirme, +HR-APR-.YY.-.MM.,HR-NİSAN-.YY.-.MM., Appraisal Template,Değerlendirme Şablonu, For Employee Name,Çalışan Adına, Goals,Hedefler, @@ -6460,16 +6460,16 @@ Appraisal Template Title,Değerlendirme Şablonu Başlığı, Appraisal Template Goal,Değerlendirme Şablonu Hedefi, KRA,KRA, Key Performance Area,Kilit Performans Alanı, -HR-ATT-.YYYY.-,HR-ATT-.YYYY.-, +HR-ATT-.YYYY.-,HR-İlgi-.YYYY.-, On Leave,İzinli, -Work From Home,Evden çalışmak, -Leave Application,İzin uygulaması, +Work From Home,evden çalışmak, +Leave Application,izin başvurusu, 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, +On Duty,görevde, Explanation,açıklama, Compensatory Leave Request,Telafi Bırakma Talebi, Leave Allocation,İzin Tahsisi, @@ -6478,43 +6478,43 @@ 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,At e-postalar gönderin, -Reminder,Hatırlatma, -Daily Work Summary Group User,Günlük Çalışma Özet Grubu Kullanıcı, +Send Emails At,e-posta gönderiminde, +Reminder,hatırlama, +Daily Work Summary Group User,Günlük Çalışma Özet Grubu Kullanıcısı, email,e-posta, Parent Department,Ana Bölüm, -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 Block List,izin engel listesi, +Days for which Holidays are blocked for this department.,Bu çıkış için tatillerin kaldırıldığı günler., Leave Approver,İzin Onaylayan, -Expense Approver,Gider Approver, +Expense Approver,Gider Onaylayan, Department Approver,Bölüm Onaycısı, Approver,Onaylayan, Required Skills,İstenen yetenekler, Skills,Beceri, Designation Skill,Atama Becerisi, Skill,Beceri, -Driver,sürücü, +Driver,Şoför, HR-DRI-.YYYY.-,HR-DRI-.YYYY.-, Suspended,Askıya alındı, -Transporter,Taşıyıcı, +Transporter,Nakliyeci, Applicable for external driver,Harici sürücü için geçerli, -Cellphone Number,cep telefonu numarası, -License Details,Lisans Bilgileri, -License Number,Lisans numarası, +Cellphone Number,Cep Telefonu Numarası, +License Details,Ehliyet Bilgileri, +License Number,Ehliyet Numarası, Issuing Date,Veriliş tarihi, -Driving License Categories,Sürücü Belgesi Kategorileri, -Driving License Category,Sürücü Belgesi Kategorisi, +Driving License Categories,Ehliyet Kategorileri, +Driving License Category,Ehliyet Kategorisi, Fleet Manager,Filo Yöneticisi, -Driver licence class,Ehliyet sınıfı, -HR-EMP-,HR-EMP-, +Driver licence class,Ehliyet Sınıfı, +HR-EMP-,İK-EMP-, Employment Type,İstihdam Tipi, Emergency Contact,Acil Durum İrtibat Kişisi, Emergency Contact Name,Acil Durum İletişim Adı, Emergency Phone,Acil Telefon, ERPNext User,ERPNext Kullanıcı, -"System User (login) ID. If set, it will become default for all HR forms.","Sistem kullanıcı (giriş) kimliği, bütün İK formları için varsayılan olacaktır", +"System User (login) ID. If set, it will become default for all HR forms.","Sistem kullanıcı (giriş) kimliği, bütün İK formları için geçerli olacaktır.", Create User Permission,Kullanıcı İzni Yarat, -This will restrict user access to other employee records,"Bu, diğer çalışan kayıtlarına kullanıcı erişimini kısıtlar", +This will restrict user access to other employee records,"Bu, diğer çalışan kayıtlarına kullanıcı erişimlerini kısıtlamalar", Joining Details,Ayrıntıları Birleştirme, Offer Date,Teklif Tarihi, Confirmation Date,Onay Tarihi, @@ -6522,10 +6522,10 @@ Contract End Date,Sözleşme Bitiş Tarihi, Notice (days),Bildirimi (gün), Date Of Retirement,Emeklilik Tarihiniz, Department and Grade,Bölüm ve sınıf, -Reports to,Raporlar, +Reports to,raporlar, 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ı), +Attendance Device ID (Biometric/RF tag ID),Seyirci Cihaz Kimliği (Biyometrik / RF etiket numarası), Applicable Holiday List,Uygulanabilir Tatil Listesi, Default Shift,Varsayılan Vardiya, Salary Details,Maaş Ayrıntıları, @@ -6533,29 +6533,29 @@ Salary Mode,Maaş Modu, Bank A/C No.,Banka Hesap No., Health Insurance,Sağlık Sigortası, Health Insurance Provider,Sağlık Sigortası Sağlayıcısı, -Health Insurance No,Sağlık Sigortası Hayır, +Health Insurance No,Sağlık Sigortası No, Prefered Email,Tercih edilen e-posta, Personal Email,Kişisel E-posta, -Permanent Address Is,Kalıcı Adres, +Permanent Address Is,kKlıcı Adres, Rented,Kiralanmış, -Owned,Hisseli, -Permanent Address,Daimi Adres, +Owned,Sahipli, +Permanent Address,Kalıcı Adres, Prefered Contact Email,Tercih Edilen E-posta İletişim, Company Email,Şirket e-posta, -Provide Email Address registered in company,şirketin kayıtlı E-posta Adresi sağlayın, -Current Address Is,Güncel Adresi, -Current Address,Mevcut Adresi, +Provide Email Address registered in company,şirket şirket E-posta Adresi bağlantısı, +Current Address Is,Güncel Adres, +Current Address,Mevcut Adres, Personal Bio,Kişisel biyo, Bio / Cover Letter,Biyo / Kapak Mektubu, Short biography for website and other publications.,Web sitesi ve diğer yayınlar için kısa biyografi., Passport Number,Pasaport Numarası, Date of Issue,Veriliş tarihi, Place of Issue,Verildiği yer, -Widowed,Dul, +Widowed,sıkıcı, Family Background,Aile Geçmişi, -"Here you can maintain family details like name and occupation of parent, spouse and children","Burada ebeveyn, eş ve çocukların isim ve meslek gibi aile ayrıntıları muhafaza edebilirsiniz", +"Here you can maintain family details like name and occupation of parent, spouse and children","Burada ebeveyn, eş ve Avrupalıların isim ve meslekleri gibi aile özelliklerini muhafaza edebilir", Health Details,Sağlık Bilgileri, -"Here you can maintain height, weight, allergies, medical concerns etc","Burada boy, kilo, alerji, tıbbi endişeler vb muhafaza edebilirsiniz", +"Here you can maintain height, weight, allergies, medical concerns etc","Burada boy, kilo, bakımı, bakım endişeleri vb muhafaza edebilirsiniz", Educational Qualification,Eğitim Yeterliliği, Previous Work Experience,Önceki İş Deneyimi, External Work History,Dış Çalışma Geçmişi, @@ -6573,37 +6573,37 @@ Claimed,İddia Edilen, Advance Account,Peşin Hesap, Employee Attendance Tool,Çalışan Seyirci Aracı, Unmarked Attendance,Işaretsiz Seyirci, -Employees HTML,"Çalışanlar, HTML", +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, +Employee Benefit Application,çalışanlara Sağlanan Fayda, 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, +Benefits Applied,Uygulama Faydaları, Dispensed Amount (Pro-rated),Dağıtım Miktarı (Pro dereceli), -Employee Benefit Application Detail,Çalışanlara Sağlanan Fayda Uygulama Detayı, -Earning Component,Kazanç Bileşeni, +Employee Benefit Application Detail,çalışanlara Sağlanan Fayda Uygulama Detayı, +Earning Component,Kazanç Bileşenleri, Pay Against Benefit Claim,Fayda Talebine Karşı Ödeme, Max Benefit Amount,Maksimum Fayda Tutarı, -Employee Benefit Claim,Çalışanlara Sağlanan Fayda Talebi, +Employee Benefit Claim,çalışanlara Sağlanan Fayda Talebi, Claim Date,Talep Tarihi, Benefit Type and Amount,Fayda Türü ve Tutarı, -Claim Benefit For,Için hak talebi, +Claim Benefit For,Hak talebi, Max Amount Eligible,Maksimum Tutar, -Expense Proof,Gider kanıtı, +Expense Proof,Gidermek, Employee Boarding Activity,Çalışan Yatılı Etkinliği, -Activity Name,Etkinlik adı, -Task Weight,görev Ağırlığı, +Activity Name,Faaliyet 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,Çalışan Checkin, Log Type,Günlük Tipi, OUT,DIŞARI, Location / Device ID,Konum / Cihaz Kimliği, -Skip Auto Attendance,Otomatik Devamı Atla, +Skip Auto Attendance,Otomatik Devamı, Shift Start,Vardiya Başlangıcı, -Shift End,Vardiya sonu, +Shift End,vardiya sonu, Shift Actual Start,Vardiya Gerçek Başlangıç, Shift Actual End,Vardiya Sonu, Employee Education,Çalışan Eğitimi, @@ -6622,57 +6622,57 @@ Employee Group Table,Çalışan Grup Masası, ERPNext User ID,ERPNext Kullanıcı Kimliği, Employee Health Insurance,Çalışan Sağlık Sigortası, Health Insurance Name,Sağlık Sigortası Adı, -Employee Incentive,Çalışan Teşviki, +Employee Incentive,Çalışan Teşvik, Incentive Amount,Teşvik Tutarı, 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,Çalışan Gemide, +Notify users by email,Kullanıcıları e-postayla bilgilendirin, Employee Onboarding Template,Çalışan Onboard Şablonu, -Activities,Faaliyetler, +Activities,faaliyetler, 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 Promotion Detail,Çalışan Tanıtım 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,Çalışan Beceri, Proficiency,yeterlik, -Evaluation Date,Değerlendirme tarihi, +Evaluation Date,değerlendirme tarihi, Employee Skill Map,Çalışan Beceri Haritası, Employee Skills,Çalışan Becerileri, -Trainings,Eğitimler, +Trainings,eğitimciler, Employee Tax Exemption Category,Çalışan Vergisi İstisnası Kategorisi, Max Exemption Amount,Maksimum Muafiyet Tutarı, Employee Tax Exemption Declaration,Çalışan Vergisi İstisnası Beyanı, Declarations,Beyannameler, -Total Declared Amount,Toplam Beyan Tutar, +Total Declared Amount,Toplam Beyan Tutarı, Total Exemption Amount,Toplam Muafiyet Tutarı, Employee Tax Exemption Declaration Category,Çalışan Vergisi İstisna Beyannamesi Kategorisi, -Exemption Sub Category,Exemption Alt Kategorisi, +Exemption Sub Category,Muafiyet Alt Kategorisi, Exemption Category,Muafiyet Kategorisi, Maximum Exempted Amount,Maksimum Muaf Tutar, Declared Amount,Beyan Edilen Tutar, Employee Tax Exemption Proof Submission,Çalışan Vergi Muafiyeti Proof Sunumu, -Submission Date,Teslim tarihi, +Submission Date,teslim tarihi, Tax Exemption Proofs,Vergi Muafiyet İspatları, Total Actual Amount,Toplam Gerçek Tutar, -Employee Tax Exemption Proof Submission Detail,Çalışan Vergi Muafiyeti Proof Gönderme Detayı, +Employee Tax Exemption Proof Submission Detail,Çalışan Vergi Muafiyeti Prova 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,Çalışan Vergi Muafiyeti Alt Kategorisi, Tax Exemption Category,Vergi Muafiyet Kategorisi, -Employee Training,Çalışan eğitimi, -Training Date,Eğitim tarihi, -Employee Transfer,Çalışan Transferi, -Transfer Date,Transfer tarihi, +Employee Training,çalışan eğitim, +Training Date,eğitim tarihi, +Employee Transfer,çalışan transfer, +Transfer Date,transfer tarihi, Employee Transfer Details,Çalışan Transfer Detayları, Employee Transfer Detail,Çalışan Transfer Detayı, -Re-allocate Leaves,Yaprakları yeniden ayır, +Re-allocate Leaves,İzinler 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, @@ -6680,14 +6680,14 @@ 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ç Giriş, -Employees Email Id,Çalışanların e-posta adresleri, +Total Claimed Amount,Toplam İade Alınan Tutar, +Total Amount Reimbursed,Toplam Tutar Geri Çekenler, +Vehicle Log,araç girişi, +Employees Email Id,çalışanların e-posta adresleri, More Details,Daha fazla detay, Expense Claim Account,Gider Talep Hesabı, Expense Claim Advance,Gider Talep İlerlemesi, -Unclaimed amount,Talep edilmeyen tutar, +Unclaimed amount,Talep edilmeyen tutarlar, Expense Claim Detail,Gideri Talebi Detayı, Expense Date,Gider Tarih, Expense Claim Type,Gideri Talebi Türü, @@ -6695,185 +6695,185 @@ Holiday List Name,Tatil Listesi Adı, Total Holidays,Toplam Tatiller, Add Weekly Holidays,Haftalık Tatilleri Ekle, Weekly Off,Haftalık İzin, -Add to Holidays,Tatillere ekle, +Add to Holidays,tatillere ekle, Holidays,Bayram, Clear Table,Temizle Tablo, HR Settings,İK Ayarları, Employee Settings,Çalışan Ayarları, Retirement Age,Emeklilik yaşı, -Enter retirement age in years,yıllarda emeklilik yaşı girin, +Enter retirement age in years,yaşlılar emeklilik yaşına 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'nde Harcama Uygunluğu, Payroll Settings,Bordro Ayarları, 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", -"If checked, hides and disables Rounded Total field in Salary Slips","İşaretlenirse, Maaş Fişlerindeki Yuvarlatılmış Toplam alanını gizler ve devre dışı bırakır", -The fraction of daily wages to be paid for half-day attendance,Yarım gün devam için ödenecek günlük ücretlerin oranı, +"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ünü sayısı tatilleri içeriğitir ve bu da Günlük ücret düşecektir", +"If checked, hides and disables Rounded Total field in Salary Slips","İşaretlenirse, Maaş Fişlerindeki Yuvarlatılmış Toplam oda gizler ve devre dışı bırakır", +The fraction of daily wages to be paid for half-day attendance,Yarım gün devam için ödenecek günlük masrafın oranı, Email Salary Slip to Employee,Çalışan e-posta Maaş Kayma, -Emails salary slip to employee based on preferred email selected in Employee,Çalışan seçilen tercih edilen e-posta dayalı çalışana e-postalar maaş kayma, +Emails salary slip to employee based on preferred email selected in Employee,Çalışan tarafından tercih edilen e-posta tabanlı çalışana e-postalar maaş kayması, Encrypt Salary Slips in Emails,E-postalardaki Maaş Notlarını Şifrele, -"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.", +"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 koruyucu olacak, şifre şifre politikasına göre üretilecektir.", Password Policy,Şifre politikası, Example: SAL-{first_name}-{date_of_birth.year}
This will generate a password like SAL-Jane-1972,Örnek: SAL- {first_name} - {date_of_birth.year}
Bu SAL-Jane-1972 gibi bir şifre üretecek, -Leave Settings,Ayarları Bırak, -Leave Approval Notification Template,Onay Bildirim Şablonunu Bırak, -Leave Status Notification Template,Durum Bildirimi Şablonunu Bırak, +Leave Settings,İzin Ayarları, +Leave Approval Notification Template,İzin Onay Bildirimi Şablonunu, +Leave Status Notification Template,İzin Durum Bildirimi Şablonunu, 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 Yapraklarını Göster, +Show Leaves Of All Department Members In Calendar,Takvimde Tüm Bölüm Üyelerinin İzinlerini 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ü, +Check Vacancies On Job Offer Creation,İş Teklifi Oluşturma İşleminde Boşluğu Kontrol Edin, +Identification Document Type,Kimlik Belgesi Türü, Effective from,İtibaren geçerli, Allow Tax Exemption,Vergi Muafiyetine İzin Ver, -"If enabled, Tax Exemption Declaration will be considered for income tax calculation.","Etkinleştirilirse, Vergi Muafiyeti Beyanı, gelir vergisi hesaplaması için dikkate alınacaktır.", +"If enabled, Tax Exemption Declaration will be considered for income tax calculation.","Etkinleştirilirse, Vergi Muafiyeti Beyanı, gelir vergisi hesaplaması için dikkate alınması.", Standard Tax Exemption Amount,Standart Vergi Muafiyeti Tutarı, Taxable Salary Slabs,Vergilendirilebilir Maaş Levhaları, Taxes and Charges on Income Tax,Gelir Vergisi Üzerindeki Vergiler ve Masraflar, Other Taxes and Charges,Diğer Vergiler ve Masraflar, Income Tax Slab Other Charges,Gelir Vergisi Levhası Diğer Masraflar, -Min Taxable Income,Minimum Vergiye Tabi Gelir, +Min Taxable Income,Asgari Vergiye Tabi Gelir, Max Taxable Income,Maksimum Vergilendirilebilir Gelir, -Applicant for a Job,İş için aday, -Accepted,Kabul Edilmiş, +Applicant for a Job,İş için bir gün, +Accepted,Kabül Edildi, Job Opening,İş Açılışı, Cover Letter,Ön yazı, -Resume Attachment,Devam Eklenti, +Resume Attachment,Devam Anlatımı, Job Applicant Source,İş Başvurusu Kaynağı, Applicant Email Address,Başvuru Sahibinin E-posta Adresi, Awaiting Response,Cevap Bekliyor, -Job Offer Terms,İş Teklifi Koşulları, +Job Offer Terms,İş Teklifi Hükümleri, Select Terms and Conditions,Şartlar ve Koşulları Seç, -Printing Details,Baskı Detaylar, +Printing Details,Baskı Detayları, Job Offer Term,İş Teklifi Süresi, -Offer Term,Teklif Dönem, +Offer Term,Teklif Dönemi, Value / Description,Değer / Açıklama, Description of a Job Opening,İş Açılış Açıklaması, Job Title,İş Unvanı, -Staffing Plan,Personel planı, +Staffing Plan,Kişisel tesis, Planned number of Positions,Planlanan Pozisyon Sayısı, -"Job profile, qualifications required etc.","İş Profili, gerekli nitelikler vb", +"Job profile, qualifications required etc.","İş Profili, gerekli nitelikler vb.", HR-LAL-.YYYY.-,HR-LAL-.YYYY.-, 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 yapraklar, -Total Leaves Allocated,Ayrılan toplam izinler, -Total Leaves Encashed,Toplam Yapraklar Encashed, -Leave Period,Dönme Süresi, -Carry Forwarded Leaves,Yönlendirilen Yapraklar Carry, -Apply / Approve Leaves,Yapraklar Onayla / Uygula, +Add unused leaves from previous allocations,Önceki ödeneklerden çalıştırman izinleri ekle, +Unused leaves,Kullanılmayan İzinler, +Total Leaves Allocated,Ayrılan Toplam İzinler, +Total Leaves Encashed,Toplam İzin Paraya çevrilen, +Leave Period,İzin Dönemi, +Carry Forwarded Leaves,Devreden İzinler, +Apply / Approve Leaves,İzinleri Onayla / Uygula, HR-LAP-.YYYY.-,HR-LAP-.YYYY.-, Leave Balance Before Application,Uygulamadan Önce Kalan İzin, -Total Leave Days,Toplam bırak Günler, -Leave Approver Name,Onaylayan Adı bırakın, +Total Leave Days,Toplam İzin Günü, +Leave Approver Name,Onaylayan Adı bırak, Follow via Email,E-posta ile takip, -Block Holidays on important days.,Önemli günlerde Blok Tatil., -Leave Block List Name,İzin engel listesi adı, +Block Holidays on important days.,Önemli günler Blok Tatil., +Leave Block List Name,izin engel listesi adı, Applies to Company,Şirket için geçerli, -"If not checked, the list will have to be added to each Department where it has to be applied.","İşaretli değilse, liste uygulanması gereken her Departmana eklenmelidir", +"If not checked, the list will have to be added to each Department where it has to be applied.","İşaretliyse, listelenmesi gereken her Departmana eklenmelidir", Block Days,Blok Gün, -Stop users from making Leave Applications on following days.,Kullanıcıların şu günlerde İzin almasını engelle., -Leave Block List Dates,İzin engel listesi tarihleri, +Stop users from making Leave Applications on following days.,Kullanıcıların şu günlerinde izinleri engelle., +Leave Block List Dates,izin engel listesi süreleri, Allow Users,Kullanıcılara izin ver, Allow the following users to approve Leave Applications for block days.,Blok günleri için aşağıdaki kullanıcıların izin uygulamalarını onaylamasına izin ver., Leave Block List Allowed,Müsaade edilen izin engel listesi, -Leave Block List Allow,İzin engel listesi müsaade eder, +Leave Block List Allow,İzin engel listesini sürdürür, Allow User,Kullanıcıya izin ver, -Leave Block List Date,İzin engel listesi tarihi, -Block Date,Blok Tarih, +Leave Block List Date,izin engel listesi tarihi, +Block Date,Blok Tarihi, Leave Control Panel,İzin Kontrol Paneli, -Select Employees,Seçin Çalışanlar, +Select Employees,Seçin çalışanlar, Employment Type (optional),İstihdam Tipi (isteğe bağlı), Branch (optional),Şube (isteğe bağlı), Department (optional),Bölüm (isteğe bağlı), 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,Yaprakları Tahsis, +Allocate Leaves,İzinleri Tahsis et, 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, +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ılı dahil etmek isterseniz Lütfen İleri Taşıyı seçin, New Leaves Allocated (In Days),Tahsis Edilen Yeni İzinler (Günler), -Allocate,Atama yap, -Leave Balance,Denge Bırak, -Encashable days,Kapanabilir günler, +Allocate,atama yap, +Leave Balance,İzin Bakiyesi, +Encashable days,kapanabilir günler, Encashment Amount,Muhafaza Tutarı, Leave Ledger Entry,Defter Girişini Bırakın, Transaction Name,İşlem Adı, -Is Carry Forward,İleri taşınmış, -Is Expired,Süresi doldu, +Is Carry Forward,ileri taşınmış, +Is Expired,süresi doldu, Is Leave Without Pay,Pay Yapmadan mı, Holiday List for Optional Leave,İsteğe Bağlı İzin İçin Tatil Listesi, Leave Allocations,Tahsisleri Bırak, -Leave Policy Details,İlke Ayrıntılarını Bırak, -Leave Policy Detail,Politika Ayrıntısından Ayrıl, +Leave Policy Details,İzin Politikası Ayrıntıları, +Leave Policy Detail,İzin Politika Ayrıntısı, Annual Allocation,Yıllık Tahsis, Leave Type Name,İzin Tipi Adı, -Max Leaves Allowed,İzin Verilen Maksimum Yaprak, +Max Leaves Allowed,İzin sınırı Maksimum Yaprak, Applicable After (Working Days),Uygulanabilir sonra (iş günü), Maximum Continuous Days Applicable,Maksimum Sürekli Günler Uygulanabilir, -Is Optional Leave,İsteğe Bağlı Bırakılıyor, +Is Optional Leave,İsteğe bağlı bırakılıyor, Allow Negative Balance,Negatif bakiyeye izin ver, -Include holidays within leaves as leaves,Yapraklar gibi yaprakları içinde tatil dahil, +Include holidays within leaves as leaves,Tatilleri izinlere izin olarak dahil et, Is Compensatory,Telafi Edicidir, -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, -Encashment Threshold Days,Muhafaza Eşiği Günleri, -Earned Leave,Kazanılan izin, -Is Earned Leave,Kazanılmış izin, -Earned Leave Frequency,Kazanılmış Bırakma Frekansı, -Rounding,yuvarlatma, +Maximum Carry Forwarded Leaves,Maksimum Devredilen İzin, +Expire Carry Forwarded Leaves (Days),Devredilen İzinlerin Sona Ermesi (Gün), +Calculated in days,Gün olarak hesaplandı, +Encashment,Paraya çevir, +Allow Encashment,Paraya çevirmeye İzin Ver, +Encashment Threshold Days,Para Çevirme Eşik Günü, +Earned Leave,Kazanılan İzin, +Is Earned Leave,Kazanılmış İzin, +Earned Leave Frequency,Kazanılmış İzin Frekansı, +Rounding,Yuvarlatma, Payroll Employee Detail,Bordro Çalışan Ayrıntısı, Payroll Frequency,Bordro Frekansı, -Fortnightly,iki haftada bir, +Fortnightly,iki hafta bir, Bimonthly,İki ayda bir, -Employees,Çalışanlar, +Employees,çalışanlar, 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, +Salary Slip Based on Timesheet,Çizelgesi dayalı 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 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, -Select Payment Account to make Bank Entry,Seç Ödeme Hesabı Banka girişi yapmak için, -Salary Slips Created,Maaş Fişleri Oluşturuldu, -Salary Slips Submitted,Maaş Fişleri Gönderildi, +Select Payment Account to make Bank Entry,Banka Kaydı yapmak için Ödeme Hesabı Seç, +Salary Slips Created,Maaş Balıkları Oluşturuldu, +Salary Slips Submitted,Maaş Balıkları Gönderildi, Payroll Periods,Bordro Dönemleri, Payroll Period Date,Bordro Dönemi Tarihi, -Purpose of Travel,Seyahat amacı, +Purpose of Travel,seyahat amacı, Retention Bonus,Tutma Bonusu, Bonus Payment Date,Bonus Ödeme Tarihi, Bonus Amount,Bonus Tutarı, Abbr,Kısaltma, Depends on Payment Days,Ödeme Günlerine bağlıdır, -Is Tax Applicable,Vergi Uygulanabilir mi, -Variable Based On Taxable Salary,Vergilendirilebilir Maaşlara Dayalı Değişken, +Is Tax Applicable,Vergi uygulanabilir mi, +Variable Based On Taxable Salary,Vergilendirilebilir Maaşlara Günlük kullanım, Exempted from Income Tax,Gelir Vergisinden Muaf, Round to the Nearest Integer,En Yakın Tamsayıya Yuvarlak, -Statistical Component,İstatistiksel Bileşen, -"If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. ","Seçilirse, bu bileşen içinde belirtilen veya hesaplanan değer kazanç veya kesintilere katkıda bulunmaz. Bununla birlikte, bu değer, eklenebilecek veya düşülebilecek diğer bileşenler tarafından referans alınabilir.", +Statistical Component,İstatistiksel Bileşenler, +"If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. ","Seçilirse, bu bilgiler içinde belirtilen veya hesaplanan değer kazancı veya kesintilere katılmaz. Bununla birlikte, bu değer, eklenebilecek veya düşülebilecek diğer verim tarafından referans alınır.", Do Not Include in Total,Toplam İçerme, -Flexible Benefits,Esnek Faydalar, -Is Flexible Benefit,Esnek Fayda mı, +Flexible Benefits,esnek faydalar, +Is Flexible Benefit,esnek Fayda mı, Max Benefit Amount (Yearly),Maksimum Fayda Tutarı (Yıllık), Only Tax Impact (Cannot Claim But Part of Taxable Income),"Sadece Vergi Etkisi (Talep Edilemez, Vergilendirilebilir Gelirin Bir Parçası)", Create Separate Payment Entry Against Benefit Claim,Fayda Talebine Karşı Ayrı Ödeme Girişi Yaratın, Condition and Formula,Durum ve Formül, Amount based on formula,Tutar formüle dayalı, -Formula,formül, +Formula,formüller, Salary Detail,Maaş Detay, -Component,Bileşen, -Do not include in total,Toplamda yer almama, +Component,Bileşenler, +Do not include in total,Toplamda yer alma, Default Amount,Standart Tutar, -Additional Amount,Ek miktar, -Tax on flexible benefit,Esnek fayda vergisi, -Tax on additional salary,Ek maaş vergisi, +Additional Amount,ek miktar, +Tax on flexible benefit,esnek fayda vergisi, +Tax on additional salary,ek maaş vergisi, Salary Structure,Maaş Yapısı, Working Days,Çalışma Günleri, Salary Slip Timesheet,Maaş Kayma Zaman Çizelgesi, @@ -6890,10 +6890,10 @@ Total Interest Amount,Toplam Faiz Tutarı, Total Loan Repayment,Toplam Kredi Geri Ödeme, net pay info,net ücret bilgisi, Gross Pay - Total Deduction - Loan Repayment,Brüt Ücret - Toplam Kesintisi - Kredi Geri Ödeme, -Total in words,Sözlü Toplam, -Net Pay (in words) will be visible once you save the Salary Slip.,Net Ödeme (sözlü) Maaş Makbuzunu kaydettiğinizde görünecektir, -Salary Component for timesheet based payroll.,zaman çizelgesi tabanlı bordro için maaş Bileşeni., -Leave Encashment Amount Per Day,Günde Muhafaza Miktarını Bırak, +Total in words,Yazıyla Toplam, +Net Pay (in words) will be visible once you save the Salary Slip.,Net Ödeme (Yazıyla) Maaş Makbuzunu kaydettiğinizde başarma, +Salary Component for timesheet based payroll.,zaman girerken bina bordrosu için maaş Bileşeni., +Leave Encashment Amount Per Day,Gündem Muhafaza Miktarını Bırak, Max Benefits (Amount),Maksimum Faydalar (Tutar), Salary breakup based on Earning and Deduction.,Kazanç ve Kesintiye göre Maaş Aralığı., Total Earning,Toplam Kazanç, @@ -6902,35 +6902,35 @@ Shift Assignment,Vardiya Atama, 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 'Çalışan Checkin'e araştırmaya dayalı., 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,Çalışan Kesinlikle Checkin'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., +First Check-in and Last Check-out,İlk Check-in ve Oğul Check-out, +Every Valid Check-in and Check-out,Her yürütme Giriş ve Çıkış, +Begin check-in before shift start time (in minutes),Vardiya başlama zamanından önce check-ine başlama (dakika olarak), +The time before the shift start time during which Employee Check-in is considered for attendance.,Çalışan Check-in'e giriş için 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, -Working hours below which Half Day is marked. (Zero to disable),Yarım Günün işaretlendiği çalışma saatleri. (Devre dışı bırakmak için sıfır), +Working hours below which Half Day is marked. (Zero to disable),Yarım günün işaretlendiği çalışma saatleri. (Devre dışı için sıfır), Working Hours Threshold for Absent,Devamsızlık için Çalışma Saatleri Eşiği, -Working hours below which Absent is marked. (Zero to disable),Devamsız işaretli çalışma saatleri. (Devre dışı bırakmak için sıfır), +Working hours below which Absent is marked. (Zero to disable),Devamsız işaretli çalışma saatleri. (Devre dışı için sıfır), 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., +Attendance will be marked automatically only after this date.,Katılım bu giriş daha 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 En Son Başarılı Başarılı Senkronizasyonu. Bunu, yalnızca Kayıtların tüm konumlardan entegre olarak kendinizden 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, -The time after the shift start time when check-in is considered as late (in minutes).,Check-in işleminin başlangıçtan sonraki zamanı geç (dakika olarak) olarak kabul edilir., +The time after the shift start time when check-in is considered as late (in minutes).,Check-in işlemlerinden sonraki saat geç (dakika olarak) olarak kabul edilir., Enable Exit Grace Period,Grace Dönemi Çıkışını Etkinleştir, -Early Exit Grace Period,Erken Çıkış Grace Dönemi, -The time before the shift end time when check-out is considered as early (in minutes).,Check-out işleminin erken olduğu andan önceki süre (dakika olarak)., +Early Exit Grace Period,Erken Grace Çıkış Dönemi, +The time before the shift end time when check-out is considered as early (in minutes).,Check-out işleminin erken olduğu ve bir önceki süre (dakika olarak)., Skill Name,Beceri Adı, -Staffing Plan Details,Kadro Plan Detayları, +Staffing Plan Details,Kadro Planı Detayları, Staffing Plan Detail,Kadro Planı Detayı, Total Estimated Budget,Toplam Tahmini Bütçe, Vacancies,Açık İşler, @@ -6939,9 +6939,9 @@ Total Estimated Cost,Toplam Tahmini Maliyeti, Current Count,Mevcut Sayım, Current Openings,Mevcut Açıklıklar, Number Of Positions,Pozisyon Sayısı, -Taxable Salary Slab,Vergilendirilebilir Maaş Slab, +Taxable Salary Slab,Vergilendirilebilir Maaş Döşeme, From Amount,Miktardan, -To Amount,Tutarına, +To Amount,tutarına, Percent Deduction,Yüzde kesinti, Training Program,Eğitim programı, Event Status,Etkinlik Durumu, @@ -6949,231 +6949,231 @@ Has Certificate,Sertifikalı, Seminar,seminer, Theory,teori, Workshop,Atölye, -Conference,Konferans, -Exam,sınav, -Internet,Internet, +Conference,konferans, +Exam,sınavı, +Internet,İnternet, Self-Study,Bireysel çalışma, -Advance,İlerlemek, +Advance,İletmek, Trainer Name,eğitmen Adı, Trainer Email,eğitmen E-posta, -Attendees,katılımcılar, +Attendees,gönderici, 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ı, +Optional,isteğe bağlı, Training Result Employee,Eğitim Sonucu Çalışan, Travel Itinerary,Seyahat güzergahı, Travel From,Seyahat, Travel To,Seyahat, -Mode of Travel,Seyahat şekli, -Flight,Uçuş, +Mode of Travel,seyahat şekli, +Flight,uçuş, Train,Tren, -Taxi,Taksi, -Rented Car,Kiralanmış araba, +Taxi,taksi, +Rented Car,kiralanmış araba, Meal Preference,Yemek Tercihi, Vegetarian,Vejetaryen, Non-Vegetarian,Vejeteryan olmayan, -Gluten Free,Glütensiz, +Gluten Free,glütensiz, Non Diary,Günlük Olmayan, Travel Advance Required,Seyahat Öncesi Gerekli, Departure Datetime,Kalkış Datetime, -Arrival Datetime,Varış Datetime, +Arrival Datetime,Varış Tarihsaat, Lodging Required,Konaklama Gerekli, Preferred Area for Lodging,Konaklama için Tercih Edilen Alan, Check-in Date,Giriş Tarihi, -Check-out Date,Tarihi kontrol et, -Travel Request,Seyahat isteği, -Travel Type,Seyahat türü, -Domestic,yerli, +Check-out Date,tarihi kontrol et, +Travel Request,Seyahat istekleri, +Travel Type,seyahat türü, +Domestic,Domestic (Yerli), International,Uluslararası, Travel Funding,Seyahat Fonu, Require Full Funding,Tam Finansman Gerektir, -Fully Sponsored,Tamamen Sponsorlu, +Fully Sponsored,tamamen Sponsorlu, "Partially Sponsored, Require Partial Funding","Kısmen Sponsorlu, Kısmi Finansman Gerektirir", -Copy of Invitation/Announcement,Davetiye / Duyurunun kopyası, +Copy of Invitation/Announcement,Davetiye / Duyurunun kopyaları, "Details of Sponsor (Name, Location)","Sponsorun Detayları (İsim, Yer)", -Identification Document Number,Kimlik Belge Numarası, -Any other details,Diğer detaylar, +Identification Document Number,Kimlik Belgesi Numarası, +Any other details,Diğer Ayrıntılar, Costing Details,Maliyet Ayrıntıları, Costing,Maliyetlendirme, -Event Details,etkinlik detayları, +Event Details,Etkinlik Detayları, Name of Organizer,Organizatörün Adı, Address of Organizer,Organizatörün Adresi, Travel Request Costing,Seyahat Talebi Maliyeti, Expense Type,Gider Türü, Sponsored Amount,Sponsorlu Tutar, Funded Amount,Fonlanan Tutar, -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 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 HTML,HTML Yükle, -Vehicle,araç, +Vehicle,Araç, License Plate,Plaka, -Odometer Value (Last),Sayaç Değeri (Son), -Acquisition Date,Edinme tarihi, -Chassis No,şasi No, -Vehicle Value,araç Değeri, +Odometer Value (Last),Kilometre Sayacı Değeri (Son), +Acquisition Date,Alım Tarihi, +Chassis No,Şasi No, +Vehicle Value,Araç Değeri, Insurance Details,Sigorta Detayları, -Insurance Company,Sigorta şirketi, -Policy No,Politika yok, -Additional Details,ek detaylar, -Fuel Type,Yakıt tipi, -Petrol,Petrol, +Insurance Company,Sigorta Şirketi, +Policy No,Poliçe No, +Additional Details,Ek Detaylar, +Fuel Type,Yakıt Tipi, +Petrol,Benzin, Diesel,Dizel, Natural Gas,Doğal gaz, Electric,Elektrik, -Fuel UOM,yakıt UOM, -Last Carbon Check,Son Karbon Kontrol, -Wheels,Tekerlekler, -Doors,Kapılar, +Fuel UOM,Yakıt Birimi, +Last Carbon Check,Son Karbon Kontrolü, +Wheels,Tekerlek, +Doors,Kapı, HR-VLOG-.YYYY.-,HR-VLOG-.YYYY.-, -Odometer Reading,Kilometre sayacı okuma, +Odometer Reading,Kilometre Sayacı Okuması, Current Odometer value ,Geçerli Kilometre Sayacı değeri, last Odometer Value ,son Kilometre Sayacı Değeri, Refuelling Details,Yakıt Detayları, -Invoice Ref,fatura Ref, +Invoice Ref,Fatura Ref, Service Details,Hizmet Detayları, -Service Detail,hizmet Detayı, -Vehicle Service,araç Servis, -Service Item,servis Öğe, +Service Detail,Hizmet Detayı, +Vehicle Service,Araç Servis, +Service Item,Servis Öğe, Brake Oil,Fren Yağı, -Brake Pad,Fren pedalı, +Brake Pad,Fren Pedalı, Clutch Plate,Debriyaj Plakası, -Engine Oil,Motor yağı, -Oil Change,Yağ değişimi, -Inspection,muayene, +Engine Oil,Motor Yağı, +Oil Change,Yağ Değişimi, +Inspection,Muayene, Mileage,Kilometre, Hub Tracked Item,Hub İzlenen Öğe, Hub Node,Hub Düğüm, -Image List,Görüntü listesi, +Image List,Görüntü Listesi, Item Manager,Ürün Yöneticisi, -Hub User,Hub kullanıcısı, +Hub User,Hub Kullanıcısı, Hub Password,Hub Parolası, Hub Users,Hub Kullanıcıları, -Marketplace Settings,Marketplace Ayarları, +Marketplace Settings,Pazar Yeri 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), +Marketplace URL (to hide and update label),Pazar yeri URL'si (etiketi gizlemek ve güncellemek için), Registered,Kayıtlı, -Sync in Progress,İlerleme devam ediyor, +Sync in Progress,Senkronizasyon Devam Ediyor, Hub Seller Name,Hub Satıcı Adı, -Custom Data,Özel veri, -Member,üye, -Partially Disbursed,Kısmen dönemlerde toplanan, +Custom Data,özel veri, +Member,Üye, +Partially Disbursed,Kısmen Ödeme yapılmış, Loan Closure Requested,Kredi Kapanışı İstendi, -Repay From Salary,Maaş dan ödemek, -Loan Details,kredi Detayları, -Loan Type,kredi Türü, -Loan Amount,Kredi miktarı, +Repay From Salary,Maaşdan Öde, +Loan Details,Kredi Detayları, +Loan Type,Kredi Türü, +Loan Amount,Kredi Tutarı, Is Secured Loan,Teminatlı Kredi, Rate of Interest (%) / Year,İlgi (%) / Yılın Oranı, -Disbursement Date,Ödeme tarihi, -Disbursed Amount,Ödeme Tutarı, +Disbursement Date,Masraf Tarihi, +Disbursed Amount,Masraf Harcama Tutarı, Is Term Loan,Vadeli Kredi, Repayment Method,Geri Ödeme Yöntemi, -Repay Fixed Amount per Period,Dönem başına Sabit Tutar Repay, -Repay Over Number of Periods,Sürelerinin Üzeri sayısı Repay, -Repayment Period in Months,Aylar içinde Geri Ödeme Süresi, +Repay Fixed Amount per Period,Dönem başına Sabit Tutar Geri Ödeme, +Repay Over Number of Periods,Sürelerinin üzeri sayısı Geri Ödeme, +Repayment Period in Months,Aylar Geri içinde Ödeme Süresi, Monthly Repayment Amount,Aylık Geri Ödeme Tutarı, Repayment Start Date,Geri Ödeme Başlangıç Tarihi, Loan Security Details,Kredi Güvenliği Detayları, Maximum Loan Value,Maksimum Kredi Değeri, Account Info,Hesap Bilgisi, -Loan Account,Borç hesabı, +Loan Account,Kredi Hesabı, Interest Income Account,Faiz Gelir Hesabı, -Penalty Income Account,Penaltı Gelir Hesabı, -Repayment Schedule,Geri Ödeme Plan, +Penalty Income Account,Ceza Geliri Hesabı, +Repayment Schedule,Geri Ödeme Planı, Total Payable Amount,Toplam Ödenecek Tutar, -Total Principal Paid,Ödenen Toplam Anapara, -Total Interest Payable,Ödenecek Toplam Faiz, -Total Amount Paid,Toplamda ödenen miktar, -Loan Manager,Kredi Müdürü, -Loan Info,kredi Bilgisi, -Rate of Interest,Faiz oranı, -Proposed Pledges,Önerilen Rehinler, -Maximum Loan Amount,Maksimum Kredi Miktarı, +Total Principal Paid,Toplam Ödenen Anapara, +Total Interest Payable,Toplam Ödenecek Faiz, +Total Amount Paid,Toplam Ödenen Tutar, +Loan Manager,Kredi Yöneticisi, +Loan Info,Kredi Bilgisi, +Rate of Interest,Faiz Oranı, +Proposed Pledges,Gelişmiş Rehinler, +Maximum Loan Amount,Maksimum Kredi Tutarı, Repayment Info,Geri Ödeme Bilgisi, -Total Payable Interest,Toplam Ödenecek faiz, +Total Payable Interest,Toplam Ödenecek Faiz, Against Loan ,Krediye Karşı, Loan Interest Accrual,Kredi Faiz Tahakkuku, -Amounts,tutarlar, +Amounts,Tutarlar, Pending Principal Amount,Bekleyen Anapara Tutarı, Payable Principal Amount,Ödenecek Anapara Tutarı, Paid Principal Amount,Ödenen Anapara Tutarı, Paid Interest Amount,Ödenen Faiz Tutarı, -Process Loan Interest Accrual,Süreç Kredisi Faiz Tahakkuku, +Process Loan Interest Accrual,Kredi Faiz Tahakkuku Süreci, Repayment Schedule Name,Geri Ödeme Planı Adı, -Regular Payment,Düzenli ödeme, +Regular Payment,Düzenli Ödeme, Loan Closure,Kredi Kapanışı, -Payment Details,Ödeme detayları, -Interest Payable,Ödenecek faiz, +Payment Details,Ödeme Detayları, +Interest Payable,Ödenecek Faiz, Amount Paid,Ödenen Tutar;, Principal Amount Paid,Ödenen Anapara Tutarı, Repayment Details,Geri Ödeme Ayrıntıları, Loan Repayment Detail,Kredi Geri Ödeme Detayı, Loan Security Name,Kredi Güvenlik Adı, -Unit Of Measure,Ölçü birimi, +Unit Of Measure,Ölçü Birimi, Loan Security Code,Kredi Güvenlik Kodu, Loan Security Type,Kredi Güvenlik Türü, -Haircut %,Saç kesimi%, +Haircut %,Saç Kesimi %, Loan Details,Kredi Detayları, -Unpledged,Unpledged, +Unpledged,taahhütsüz, Pledged,Rehin, Partially Pledged,Kısmen Rehin Verildi, Securities,senetler, Total Security Value,Toplam Güvenlik Değeri, Loan Security Shortfall,Kredi Güvenliği Eksikliği, -Loan ,borç, +Loan ,Kredi , Shortfall Time,Eksik Zaman, America/New_York,Amerika / New_York, Shortfall Amount,Eksiklik Tutarı, Security Value ,Güvenlik Değeri, -Process Loan Security Shortfall,Süreç Kredisi Güvenlik Açığı, +Process Loan Security Shortfall,Kredi Güvenlik Açığı Süreci, Loan To Value Ratio,Kredi / Değer Oranı, -Unpledge Time,Unpledge Zamanı, -Loan Name,kredi Ad, -Rate of Interest (%) Yearly,İlgi Oranı (%) Yıllık, +Unpledge Time,Rehin Zamanı, +Loan Name,Kredi Adı, +Rate of Interest (%) Yearly,Yıllık Faiz Oranı (%), Penalty Interest Rate (%) Per Day,Günlük Ceza Faiz Oranı (%), -Penalty Interest Rate is levied on the pending interest amount on a daily basis in case of delayed repayment ,"Gecikmeli geri ödeme durumunda, günlük olarak askıya alınan faiz oranı üzerinden tahakkuk eden faiz oranı alınır.", -Grace Period in Days,Gün İçi Ödemesiz Dönem, -No. of days from due date until which penalty won't be charged in case of delay in loan repayment,"Kredi geri ödemesinde gecikme olması durumunda, vade tarihinden itibaren cezanın uygulanmayacağı gün sayısı", +Penalty Interest Rate is levied on the pending interest amount on a daily basis in case of delayed repayment ,"Gecikmeli geri ödeme durumunda, günlük olarak alınan faiz oranı tahakkuk eden faiz oranı alınır.", +Grace Period in Days,Gün olarak Ek Süre, +No. of days from due date until which penalty won't be charged in case of delay in loan repayment,"Kredi geri ödemesinde gecikme olması durumunda, vade kurallarından cezanın uygulanmayacağı gün sayısı", Pledge,Rehin, Post Haircut Amount,Post Saç Kesimi Miktarı, Process Type,İşlem türü, -Update Time,Güncelleme zamanı, -Proposed Pledge,Önerilen Rehin, -Total Payment,Toplam ödeme, +Update Time,Zamanı Güncelle, +Proposed Pledge,Yetenekli Rehin, +Total Payment,Toplam Ödeme, Balance Loan Amount,Bakiye Kredi Miktarı, Is Accrued,Tahakkuk Edildi, Salary Slip Loan,Maaş Kaybı Kredisi, Loan Repayment Entry,Kredi Geri Ödeme Girişi, Sanctioned Loan Amount,Onaylanan Kredi Tutarı, Sanctioned Amount Limit,Onaylanan Tutar Sınırı, -Unpledge,Unpledge, -Haircut,saç kesimi, +Unpledge,Taahhüdü iptal et, +Haircut,Saç Kesimi, MAT-MSH-.YYYY.-,MAT-MSH-.YYYY.-, -Generate Schedule,Program Oluşturun, -Schedules,Programlar, +Generate Schedule,Program Oluşturmanın, +Schedules,programlı, Maintenance Schedule Detail,Bakım Programı Detayı, Scheduled Date,Program Tarihi, Actual Date,Gerçek Tarih, Maintenance Schedule Item,Bakım Programı Ürünü, Random,Rastgele, -No of Visits,Ziyaret sayısı, +No of Visits,ziyaret sayısı, MAT-MVS-.YYYY.-,MAT-MVS-.YYYY.-, -Maintenance Date,Bakım Tarih, +Maintenance Date,Bakım Tarihi, Maintenance Time,Bakım Zamanı, Completion Status,Tamamlanma Durumu, Partially Completed,Kısmen Tamamlandı, -Fully Completed,Tamamen Tamamlanmış, -Unscheduled,Plânlanmamış, +Fully Completed,tamamen Tamamlanmış, +Unscheduled,planlanmamış, Breakdown,Arıza, Purposes,Amaçları, Customer Feedback,Müşteri Görüşleri, -Maintenance Visit Purpose,Bakım ziyareti Amacı, -Work Done,Yapılan İş, +Maintenance Visit Purpose,Bakım ziyareti Amaç, +Work Done,İş Bitti, Against Document No,Karşılık Belge No., Against Document Detail No,Karşılık Belge Detay No., MFG-BLR-.YYYY.-,MFG-BLR-.YYYY.-, @@ -7181,25 +7181,25 @@ Order Type,Sipariş Türü, Blanket Order Item,Battaniye sipariş öğesi, 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ı ayarlama, +Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Belirli miktarlarda ham maddeden üretim / yeniden paketleme sonrasında elde edilen ürün miktarı, +Set rate of sub-assembly item based on BOM,BOM'a dayalı alt montaj malzemesinin ayarları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,Dayalı Ürün Br. Fiyatı, -With Operations,Operasyon ile, +Conversion Rate,Dönüşüm Oranı, +Rate Of Materials Based On,Malzeme Fiyatı Şuna göre, +With Operations,Operasyonlar ile, Manage cost of operations,İşlem Maliyetlerini Yönetin, Transfer Material Against,Karşı Malzemeyi Aktar, -Routing,Yönlendirme, +Routing,Rota, Materials,Materyaller, Quality Inspection Required,Kalite Denetimi Gerekli, Quality Inspection Template,Kalite Kontrol Şablonu, Scrap,Hurda, -Scrap Items,hurda Ürünleri, -Operating Cost,İşletme Maliyeti, +Scrap Items,Hurda Ögeleri, +Operating Cost,Operasyon Maliyeti, Raw Material Cost,Hammadde Maliyeti, Scrap Material Cost,Hurda Malzeme Maliyet, -Operating Cost (Company Currency),İşletme Maliyeti (Şirket Para Birimi), +Operating Cost (Company Currency),Operasyon 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, @@ -7208,173 +7208,173 @@ Materials Required (Exploded),Gerekli Malzemeler (patlamış), Exploded Items,Patlamış Öğeler, Show in Website,Web Sitesinde Göster, Item Image (if not slideshow),Ürün Görüntü (yoksa slayt), -Thumbnail,Başparmak tırnağı, +Thumbnail,Thumbnail, Website Specifications,Web Sitesi Özellikleri, -Show Items,göster Öğeler, -Show Operations,göster İşlemleri, +Show Items,Öğeler Göster, +Show Operations,Operasyonları Göster, 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,İmalattaki Ürünü Dahil Et, -BOM Item,BOM Ürün, -Item operation,Öğe operasyonu, +Include Item In Manufacturing,Ürünü Üretime Dahil et, +BOM Item,BOM Ürünü, +Item operation,Ürün Operasyonu, Rate & Amount,Oran ve Miktar, Basic Rate (Company Currency),Temel oran (Şirket para birimi), Scrap %,Hurda %, -Original Item,Orijinal öğe, +Original Item,Orjinal Ürün, BOM Operation,BOM Operasyonu, -Operation Time ,Operasyon zamanı, -In minutes,Dakikalar içinde, -Batch Size,Parti boyutu, +Operation Time ,Operasyon Süresi , +In minutes,Dakika, +Batch Size,Parti Boyutu, Base Hour Rate(Company Currency),Baz Saat Hızı (Şirket Para Birimi), -Operating Cost(Company Currency),İşletme Maliyeti (Şirket Para Birimi), +Operating Cost(Company Currency),Operasyon 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'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 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 ürün reçetelerinde 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, PO-JOB.#####,PO-İŞ. #####, -Timing Detail,Zamanlama detay, +Timing Detail,Zamanlama Detayı, Time Logs,Zaman Günlükleri, Total Time in Mins,Dakikada Toplam Süre, Operation ID,İşlem kimliği, Transferred Qty,Transfer Edilen Miktar, Job Started,İşe Başladı, -Started Time,Başlangıç zamanı, -Current Time,Şimdiki zaman, +Started Time,Başlangıç Zamanı, +Current Time,Şimdiki Zaman, Job Card Item,İş Kartı Öğesi, -Job Card Time Log,İş kartı zaman günlüğü, -Time In Mins,Dakikalarda Zaman, +Job Card Time Log,İş Kartı Zaman günlüğü, +Time In Mins,Süre dakika, Completed Qty,Tamamlanan Adet, Manufacturing Settings,Üretim Ayarları, 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 Materyal Transfer, +Material Transferred for Manufacture,Üretim için Malzeme Transferi, 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, +Allow Overtime,Fazla Mesaiye izin ver, +Allow Production on Holidays,Tatilde Üretime izin ver, +Capacity Planning For (Days),Kapasite Planlama (Gün), Default Warehouses for Production,Varsayılan Üretim Depoları, -Default Work In Progress Warehouse,İlerleme Ambarlar'da Standart Çalışma, -Default Finished Goods Warehouse,Standart bitirdi Eşya Depo, +Default Work In Progress Warehouse,Varsayılan Yarı Mamul Deposu, +Default Finished Goods Warehouse,Varsayılan Mamul Deposu, 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, +Overproduction Percentage For Sales Order,Satış Siparişi İçin Fazla Üretim Yüzdesi, +Overproduction Percentage For Work Order,İş Emri İçin Fazla Üretim Yüzdesi, Other Settings,Diğer Ayarlar, Update BOM Cost Automatically,BOM Maliyetini Otomatik Olarak Güncelleyin, -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, +Material Request Plan Item,Malzeme Talep Planı Kalemi, +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ı, +Default Workstation,Varsayılan İş İstasyonu, Production Plan,Üretim Planı, MFG-PP-.YYYY.-,MFG-PP-.YYYY.-, -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,Taahhütlü Öğeleri Dahil Et, +Get Items From,Öğeleri Al, +Get Sales Orders,Satış Şiparişlerini Getir, +Material Request Detail,Malzeme Talep Ayrıntısı, +Get Material Request,Malzeme Talebini Getir, +Material Requests,Malzeme Talepleri, +Get Items For Work Order,İş Emri İçin Ürünleri Al, +Material Request Planning,Malzeme Talep Planlaması, +Include Non Stock Items,Stokta olmayan Ürünleri Dahil Et, +Include Subcontracted Items,Taşerona verilmiş Ürünleri Dahil et, Ignore Existing Projected Quantity,Mevcut Öngörülen Miktarı Yoksay, "To know more about projected quantity, click here.","Tahmini miktar hakkında daha fazla bilgi için, buraya tıklayın .", Download Required Materials,Gerekli Malzemeleri İndirin, Get Raw Materials For Production,Üretim İçin Hammaddeleri Alın, -Total Planned Qty,Toplam Planlanan Adet, +Total Planned Qty,Toplam Planlanan Miktar, Total Produced Qty,Toplam Üretilen Miktar, -Material Requested,İstenen Malzeme, +Material Requested,Talep edilen 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, -material_request_item,material_request_item, -Product Bundle Item,Ürün Paketi Ürün, +material_request_item,malzeme_isteği_öğesi, +Product Bundle Item,Ürün Bundle Ögesi, Production Plan Material Request,Üretim Planı Malzeme Talebi, Production Plan Sales Order,Üretim Planı Satış Siparişi, Sales Order Date,Satış Sipariş Tarihi, 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 Materyal, +Material Transferred for Manufacturing,Üretim için Aktarılan Malzeme, Manufactured Qty,Üretilen Miktar, -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ışı, +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,Yarı Mamul Deposuna Malzeme Transferini Atla, +Check if material transfer entry is not required,Malzeme transfer girişinin gerekli olup olmadığını kontrol et, +Backflush Raw Materials From Work-in-Progress Warehouse,Devam eden depodaki hammaddelerin geri bilgileri, 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 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, kazınmış malzemelerin depolandığı bir yerdir.", -Required Items,gerekli Öğeler, +This is a location where raw materials are available.,Hammaddelerin bulunduğu bir konumdur, +Work-in-Progress Warehouse,Yarı Maül Deposu, +This is a location where operations are executed.,Operasyonların yürütüldüğü bir konumdur., +This is a location where final product stored.,Nihai ürünün (mamülün) depolandığı bir konumdur., +Scrap Warehouse,Hurda Deposu, +This is a location where scraped materials are stored.,Hurdaya çıkan malzemelerin depolandığı bir konumdur., +Required Items,Gerekli Ürünler, 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ı İş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ı, +Planned Operating Cost,Planlanan 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, 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,İşletme Tanımı, -Operation completed for how many finished goods?,Operasyon kaç mamul tamamlandı?, -Work in Progress,Devam eden iş, +Operation Description,Operasyon Tanımı, +Operation completed for how many finished goods?,Kaç mamul için operasyon tamamlandı?, +Work in Progress,Devam ediyor, Estimated Time and Cost,Tahmini Süre ve Maliyet, Planned Start Time,Planlanan Başlangıç Zamanı, Planned End Time,Planlanan Bitiş Zamanı, -in Minutes,Dakika içinde, -Actual Time and Cost,Gerçek Zaman ve Maliyet, +in Minutes,Dakika, +Actual Time and Cost,Gerçek Süre ve Maliyet, Actual Start Time,Gerçek Başlangıç Zamanı, Actual End Time,Gerçek Bitiş Zamanı, -Updated via 'Time Log','Zaman Log' aracılığıyla Güncelleme, -Actual Operation Time,Gerçek Çalışma Süresi, +Updated via 'Time Log','Zaman Logu' aracılığıyla Güncellendi, +Actual Operation Time,Gerçek Operasyon 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, +(Hour Rate / 60) * Actual Operation Time,(Saat Hızı / 60) * Gerçek Operasyon Süresi, Workstation Name,İş İstasyonu Adı, -Production Capacity,Üretim kapasitesi, -Operating Costs,İşletim Maliyetleri, +Production Capacity,Üretim Kapasitesi, +Operating Costs,Operasyon Maliyetleri, Electricity Cost,Elektrik Maliyeti, per hour,saat başına, -Consumable Cost,Sarf Maliyeti, +Consumable Cost,Sarf Malzemesi Maliyeti, Rent Cost,Kira Bedeli, Wages,Ücret, -Wages per hour,Saatlik ücret, -Net Hour Rate,Net Saat Hızı, -Workstation Working Hour,İş İstasyonu Çalışma Saati, +Wages per hour,Saatlik Ücreti, +Net Hour Rate,Net Saat Ücreti, +Workstation Working Hour,İş İstasyonu Operasyon Saati, Certification Application,Sertifika Başvurusu, Name of Applicant,Başvuru sahibinin adı, Certification Status,Sertifika Durumu, -Yet to appear,Henüz görünmek, -Certified,onaylı, +Yet to appear,Henüz görünmedi, +Certified,Sertifikalı, Not Certified,Sertifikalı değil, USD,Amerikan Doları, INR,INR, Certified Consultant,Sertifikalı Danışman, -Name of Consultant,Danışmanın adı, +Name of Consultant,danışmanın adı, Certification Validity,Belgelendirme geçerliliği, -Discuss ID,Kimliği tartış, +Discuss ID,Kimliği tartışmak, GitHub ID,GitHub Kimliği, Non Profit Manager,Kâr Dışı Müdür, Chapter Head,Bölüm Başkanı, @@ -7383,18 +7383,18 @@ chapters/chapter_name\nleave blank automatically set after saving chapter.,böl Chapter Members,Bölüm Üyeleri, Members,Üyeler, Chapter Member,Bölüm Üyesi, -Website URL,Website URL, +Website URL,Web Sitesi URL'si, Leave Reason,Nedenini Bırak, Donor Name,Donör Adı, Donor Type,Donör Türü, -Withdrawn,çekilmiş, +Withdrawn,Çekilmiş, Grant Application Details ,Hibe Başvurusu Ayrıntıları, -Grant Description,Grant Açıklama, +Grant Description,Hibe 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ü, +Assessment Mark (Out of 10),Değerlendirme Markası (10''), +Assessment Manager,Değerlendirme Yöneticisi, Email Notification Sent,Gönderilen E-posta Bildirimi, NPO-MEM-.YYYY.-,NPO-MEM-.YYYY.-, Membership Expiry Date,Üyelik Sona Erme Tarihi, @@ -7409,21 +7409,21 @@ 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'i Etkinleştirin, RazorPay Settings,RazorPay Ayarları, -Billing Cycle,Fatura döngüsü, +Billing Cycle,Faturalandırma, Billing Frequency,Fatura Sıklığı, -"The number of billing cycles for which the customer should be charged. For example, if a customer is buying a 1-year membership that should be billed on a monthly basis, this value should be 12.","Müşterinin ücretlendirilmesi gereken faturalama döngülerinin sayısı. Örneğin, bir müşteri aylık olarak faturalandırılması gereken 1 yıllık bir üyelik satın alıyorsa, bu değer 12 olmalıdır.", +"The number of billing cycles for which the customer should be charged. For example, if a customer is buying a 1-year membership that should be billed on a monthly basis, this value should be 12.","Müşterinin ücretlendirilmesi gereken faturalama döngülerinin sayısı. Örneğin, bir müşteri aylık olarak faturalandırılması gereken 1 yıllık bir üyelik satınalma içermelisa, bu değer 12 olmalıdır.", Razorpay Plan ID,Razorpay Plan Kimliği, Volunteer Name,Gönüllülük Adı, -Volunteer Type,Gönüllü Tip, +Volunteer Type,Gönüllü İpucu, Availability and Skills,Kullanılabilirlik ve Beceriler, -Availability,Kullanılabilirlik, -Weekends,Hafta sonları, +Availability,kullanılabilirlik, +Weekends,hafta sonları, Availability Timeslot,Kullanılabilirlik Zaman Aralığı, Morning,Sabah, Afternoon,Öğleden sonra, -Evening,Akşam, +Evening,akşam, Anytime,İstediğin zaman, Volunteer Skills,Gönüllülük Becerileri, Volunteer Skill,Gönüllü Beceri, @@ -7432,8 +7432,8 @@ Hero Section Based On,Kahraman Bölümüne Dayalı, Homepage Section,Anasayfa Bölümü, Hero Section,Kahraman Bölümü, Tag Line,Etiket Hattı, -Company Tagline for website homepage,web sitesinin ana Company Slogan, -Company Description for website homepage,web sitesinin ana Firma Açıklaması, +Company Tagline for website homepage,web tasarımı ana Şirket Sloganı, +Company Description for website homepage,web tasarımı ana Firma Açıklaması, Homepage Slideshow,Anasayfa Slayt Gösterisi, "URL for ""All Products""","Tüm Ürünler" URL, Products to be shown on website homepage,Ürünler web sitesi ana sayfasında gösterilecek, @@ -7442,64 +7442,64 @@ route,rota, Section Based On,Dayalı Bölüm, Section Cards,Bölüm Kartları, 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., +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 içerseniz her satırda 3 kart gösterecek., 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'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.", +"Order in which sections should appear. 0 is first, 1 is second and so on.","Hangi bölümlerin taşımalarını sıralayın. 0 birinci, 1 ikinci ve benzeri.", Homepage Section Card,Anasayfa Bölüm Kartı, Subtitle,Alt yazı, -Products Settings,Ürünler Ayarları, -Home Page is Products,Ana Sayfa Ürünler konumundadır, +Products Settings,Ürün Ayarları, +Home Page is Products,Ana Sayfa Ürünler pozisyonudur, "If checked, the Home page will be the default Item Group for the website","Seçili ise, Ana sayfa web sitesi için varsayılan Ürün Grubu olacak", Show Availability Status,Uygunluk Durumunu Göster, Product Page,Ürün Sayfası, Products per Page,Sayfa Başına Ürünler, -Enable Field Filters,Alan Filtrelerini Etkinleştir, +Enable Field Filters,Alan Filtrelerini Etkinleştirin, Item Fields,Öğe Alanları, -Enable Attribute Filters,Öznitelik Filtrelerini Etkinleştir, +Enable Attribute Filters,Öznitelik Filtrelerini Etkinleştirin, Attributes,Nitelikler, Hide Variants,Varyantları Gizle, Website Attribute,Web Sitesi Özelliği, Attribute,Nitelik, Website Filter Field,Web Sitesi Filtre Alanı, -Activity Cost,Etkinlik Maliyeti, +Activity Cost,Faaliyet Maliyeti, Billing Rate,Fatura Oranı, Costing Rate,Maliyet Oranı, title,Başlık, -Projects User,Projeler Kullanıcı, +Projects User,Projeler Kullanıcısı, Default Costing Rate,Standart Maliyetlendirme Oranı, Default Billing Rate,Varsayılan Fatura Oranı, Dependent Task,Bağımlı Görev, Project Type,Proje Tipi, -% Complete Method,% Tamamlandı Yöntem, -Task Completion,görev Tamamlama, -Task Progress,görev İlerleme, -% Completed,% Tamamlanan, -From Template,Şablondan, -Project will be accessible on the website to these users,Proje internet sitesinde şu kullanıcılar için erişilebilir olacak, +% Complete Method,% Tamamlama Yöntemi, +Task Completion,Görev Tamamlama, +Task Progress,Görev İlerlemesi, +% Completed,% Tamamlandı, +From Template,Proje Şablonundan, +Project will be accessible on the website to these users,Proje internet siteleri şu kullanıcılar için erişilebilir olacak, Copied From,Kopyalanacak, -Start and End Dates,Başlangıç ve Tarihler End, +Start and End Dates,Başlangıç ve Tarihler Sonu, 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 İddiası (Gider Talepleri yoluyla), -Total Purchase Cost (via Purchase Invoice),Toplam Satınalma Maliyeti (Satın Alma Fatura üzerinden), +Total Purchase Cost (via Purchase Invoice),Toplam Satınalma Maliyeti (Satınalma 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 Girişi ile), -Gross Margin,Brüt Marj, -Gross Margin %,Brüt Kar Marjı%, -Monitor Progress,İzleme İlerlemesi, -Collect Progress,İlerlemeyi topla, +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), +Gross Margin,Brut Marj, +Gross Margin %,Brüt Kar Marji%, +Monitor Progress,İlerlemeyi Görüntüle, +Collect Progress,İlerlemeyi Topla, Frequency To Collect Progress,İlerleme Sıklığı Frekansı, Twice Daily,Günde iki kez, First Email,İlk e-posta, Second Email,İkinci e-posta, -Time to send,Gönderme zamanı, -Day to Send,Gönderilecek Gün, -Message will be sent to the users to get their status on the Project,Projedeki durumlarını öğrenmek için kullanıcılara mesaj gönderilecektir., +Time to send,Gönderim Zamanı, +Day to Send,Gönderim Günü, +Message will be sent to the users to get their status on the Project,Projedeki durumlarını öğrenmek için mesaj gönderilecektir., Projects Manager,Proje Yöneticisi, Project Template,Proje Şablonu, Project Template Task,Proje Şablonu Görevi, @@ -7507,28 +7507,28 @@ Begin On (Days),Başla (Günler), Duration (Days),Süre (Günler), Project Update,Proje Güncellemesi, Project User,Proje Kullanıcısı, -View attachments,Ekleri görüntüle, -Projects Settings,Projeler Ayarları, +View attachments,Ekleri Göster, +Projects Settings,Proje Ayarları, Ignore Workstation Time Overlap,İş İstasyonu Zaman Çakışmasını Yoksay, -Ignore User Time Overlap,Kullanıcı Zaman Çakışmalarını Yoksay, +Ignore User Time Overlap,Kullanıcı Zaman Çakışmasını Yoksay, Ignore Employee Time Overlap,Çalışan Zamanı Çakışmasını Yoksay, Weight,Ağırlık, Parent Task,Ana Görev, -Timeline,Zaman çizelgesi, -Expected Time (in hours),(Saat) Beklenen Zaman, -% Progress,% İlerleme, -Is Milestone,Milestone mu?, -Task Description,Görev tanımı, +Timeline,Zaman cetveli, +Expected Time (in hours),Beklenen Zaman (Saat), +% Progress,İlerleme % Yüzdesi, +Is Milestone,Kilometre taşı, +Task Description,Görev Tanımı, Dependencies,Bağımlılıklar, Dependent Tasks,Bağımlı Görevler, Depends on Tasks,Görevler bağlıdır, Actual Start Date (via Time Sheet),Gerçek başlangış tarihi (Zaman Tablosu'ndan), 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 İddiası, -Total Billing Amount (via Time Sheet),Toplam Fatura Tutarı (Zaman Sheet yoluyla), -Review Date,İnceleme tarihi, +Actual End Date (via Time Sheet),Gerçek bitiş tarihi (Zaman Tablosu'ndan), +Total Costing Amount (via Time Sheet),(Zaman Formu maliyeti) Toplam Maliyet Tutarı, +Total Expense Claim (via Expense Claim),(Gider İstem yoluyla) Toplam Gider İddiası, +Total Billing Amount (via Time Sheet),Toplam Fatura Tutarı (Zaman Tablosu yoluyla), +Review Date,inceleme tarihi, Closing Date,Kapanış Tarihi, Task Depends On,Görev Bağlıdır, Task Type,Görev Türü, @@ -7545,30 +7545,30 @@ Hrs,saat, Costing Amount,Maliyet Tutarı, Corrective/Preventive,Önleyici / Düzeltici, Corrective,Düzeltici, -Preventive,önleyici, +Preventive,koruyucu, Resolution,Karar, -Resolutions,kararlar, +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, -Monitoring Frequency,Frekans İzleme, +Quality Goal,kalite hedefi, +Monitoring Frequency,Frekans izleme, Weekday,çalışma günü, Objectives,Hedefler, Quality Goal Objective,Kalite Hedef Amaç, -Objective,Amaç, +Objective,amaç, Agenda,Gündem, -Minutes,Dakika, +Minutes,Dakikalar, 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ı, -Link existing Quality Procedure.,Mevcut Kalite Prosedürünü bağlayın., -Additional Information,ek bilgi, -Quality Review Objective,Kalite İnceleme Amaç, +Minute,Dakikalar, +Parent Procedure,yapı hükümleri, +Processes,süreçler, +Quality Procedure Process,Kalite hükümleriü Süreci, +Process Description,süreç anlatımı, +Link existing Quality Procedure.,Mevcut kalite hükümlerini birleştirme., +Additional Information,Ek Bilgi, +Quality Review Objective,Kalite incelemesi Amaç, DATEV Settings,DATEV Ayarları, Regional,Bölgesel, Consultant ID,Danışman Kimliği, @@ -7579,17 +7579,17 @@ GST Summary,GST Özeti, GSTIN Email Sent On,GSTIN E-postayla Gönderildi, GST Accounts,GST Hesapları, B2C Limit,B2C Sınırı, -Set Invoice Value for B2C. B2CL and B2CS calculated based on this invoice value.,B2C için Fatura Değeri ayarlayın. Bu fatura değerine dayanarak B2CL ve B2CS hesaplanır., +Set Invoice Value for B2C. B2CL and B2CS calculated based on this invoice value.,B2C için Fatura Değeri ayarı. Bu faturanın ödenmesinden itibaren B2CL ve B2CS'nin ödenmesi., GSTR 3B Report,GSTR 3B Raporu, January,Ocak, February,Şubat, March,Mart, -April,Nisan, +April,nisan, May,Mayıs, June,Haziran, July,Temmuz, August,Ağustos, -September,Eylül, +September,eylül, October,Ekim, November,Kasım, December,Aralık, @@ -7597,168 +7597,168 @@ JSON Output,JSON Çıkışı, Invoices with no Place Of Supply,Tedarik Yeri Olmayan Faturalar, Import Supplier Invoice,Tedarikçi Faturasını İçe Aktar, Invoice Series,Fatura Serisi, -Upload XML Invoices,XML Faturalarını Yükle, +Upload XML Invoices,XML Faturalarını Yükleme, Zip File,Sıkıştırılmış dosya, Import Invoices,İthalat Faturaları, -Click on Import Invoices button once the zip file has been attached to the document. Any errors related to processing will be shown in the Error Log.,Zip dosyası belgeye eklendikten sonra Faturaları İçe Aktar düğmesini tıklayın. İşlemeyle ilgili tüm hatalar Hata Günlüğünde gösterilir., +Click on Import Invoices button once the zip file has been attached to the document. Any errors related to processing will be shown in the Error Log.,Zip dosyası belgeye eklendikten sonra Faturaları İçe Aktar düğmesine tıklayın. İşlemeyle ilgili tüm hatalar Hata Günlüğünde gösterilir., Lower Deduction Certificate,Düşük Kesinti Sertifikası, Certificate Details,Sertifika Ayrıntıları, 194A,194A, 194C,194C, 194D,194D, 194H,194H, -194I,194I, +194I,194 ben, 194J,194J, 194LA,194LA, 194LBB,194LBB, 194LBC,194LBC, Certificate No,sertifika numarası, -Deductee Details,Deductee Ayrıntıları, -PAN No,PAN Hayır, -Validity Details,Geçerlilik Ayrıntıları, +Deductee Details,Kesinti Ayrıntıları, +PAN No,PAN No, +Validity Details,kutsallık detayları, Rate Of TDS As Per Certificate,Sertifikaya Göre TDS Oranı, Certificate Limit,Sertifika Limiti, Invoice Series Prefix,Fatura Serisi Öneki, Active Menu,Aktif Menü, -Restaurant Menu,Restaurant Menü, -Price List (Auto created),Fiyat Listesi (Otomatik oluşturuldu), -Restaurant Manager,Restaurant yöneticisi, +Restaurant Menu,Restoran menüsü, +Price List (Auto created),Fiyat Listesi (Otomatik kaydı), +Restaurant Manager,restoran 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, +Restaurant Table,Restoran Masası, +Click Enter To Add,Ekle Gir'i tıklayın, Last Sales Invoice,Son Satış Faturası, -Current Order,Geçerli Sipariş, +Current Order,Tamamlayıcı Sipariş, Restaurant Order Entry Item,Restaurant Sipariş Girişi Maddesi, -Served,sunulan, -Restaurant Reservation,Restaurant Rezervasyonu, -Waitlisted,Bekleme listesindeki, +Served,teslim, +Restaurant Reservation,Restoran Rezervasyonu, +Waitlisted,bekleme listesindeki, No Show,Gösterim Yok, No of People,İnsanlar Sayısı, Reservation Time,Rezervasyon Süresi, Reservation End Time,Rezervasyon Bitiş Saati, No of Seats,Koltuk Sayısı, -Minimum Seating,Minimum Oturma, -"Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ","Satış Kampanyalarını Takip edin. Yatırım Getirisini ölçmek için Kampanyalardaki Teklifleri, Fiyat Tekliflerini, Satış Siparişini vb. Takip edin.", +Minimum Seating,Asgari Oturma, +"Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ","Satış Kampanyalarını Takip edin. Yatırım Getirisini Sizin için Kampanyalardaki Teklifleri, Fiyat Tekliflerini, Satış Siparişini vb. Takip edin.", SAL-CAM-.YYYY.-,SAL-CAM-.YYYY.-, Campaign Schedules,Kampanya Takvimleri, Buyer of Goods and Services.,Mal ve Hizmet Alıcı., -CUST-.YYYY.-,CUST-.YYYY.-, +CUST-.YYYY.-,MÜŞTERİ-.YYYY.-, Default Company Bank Account,Varsayılan Şirket Banka Hesabı, -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,Teslimat Notu Olmadan Satış Faturası Oluşturmaya İzin Ver, +From Lead,Bu Müşteri Adayından, +Account Manager,Muhasebe Yöneticisi, +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, Default Price List,Standart Fiyat Listesi, 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 Temas, -"Reselect, if the chosen contact is edited after save",Kaydedildikten sonra seçilen kişi düzenlenirse yeniden seç, +Customer Primary Contact,Müşteri Birincil İletişim, +"Reselect, if the chosen contact is edited after save",Seçilen kişi kaydedildikten sonra düzenlenirse yeniden seçin, 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ç, +"Reselect, if the chosen address is edited after save",Seçilen adres kaydedildikten sonra düzenlenirse yeniden seçin, 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 Koşulları, +Mention if non-standard receivable account,Standart dışı alacak hesabı varsa belirtiniz, +Credit Limit and Payment Terms,Kredi Limiti ve Ödeme Biletleri, 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,Satış Siparişinde kontör limitini atla, +Bypass Credit Limit Check at Sales Order,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 Time,Kurulum Zamanı, Installation Note Item,Kurulum Notu Maddesi, -Installed Qty,Kurulan Miktar, -Lead Source,Potansiyel Müşteri Kaynağı, +Installed Qty,Kurulum Miktarı, +Lead Source,Aday Kaynağı, Period Start Date,Dönem Başlangıç Tarihi, Period End Date,Dönem Sonu Tarihi, -Cashier,kasiyer, -Difference,fark, -Modes of Payment,Ödeme modları, -Linked Invoices,Bağlantılı Faturalar, -POS Closing Voucher Details,POS Kapanış Makbuzu Detayları, +Cashier,Kasiyer, +Difference,Fark, +Modes of Payment,Ödeme Biçimi, +Linked Invoices,Bağlı Faturalar, +POS Closing Voucher Details,POS Kapanış Fişi Detayları, Collected Amount,Toplanan Tutar, Expected Amount,Beklenen Tutar, -POS Closing Voucher Invoices,POS Kapanış Kuponu Faturaları, +POS Closing Voucher Invoices,POS Kapanış Fişi Faturaları, Quantity of Items,Ürünlerin Miktarı, -"Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. \n\nThe package **Item** will have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes"".\n\nFor Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Product Bundle Item.\n\nNote: BOM = Bill of Materials","Birleştirilmiş grubu **Parçalar** içinde **Parça**. Bu özellik paketlenen **Parçalar** stoğunu kullanımı kolaylık sağlar ve birleştirilen **Parça** kullanılmaz. Paket **Parça** içeriği ""Stoktaki Parça"" için ""Hayır"" ve ""Satıştaki Parça"" seçimi ""Evet"". Örneğin: Laptop ve Arka sırtlığı ayrı ayrı satış yapıyorsunuz. Ancak müşteri ikisini beraber alırsa özel fiyattan satıcaksınız, bu durumda Laptop + Arka sırtlık yeni bir ürün kalemi olacaktır. Açıklama: BOM = Ürün Ağacı", +"Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. \n\nThe package **Item** will have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes"".\n\nFor Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Product Bundle Item.\n\nNote: BOM = Bill of Materials","Birleştirilmiş grup **Parçalar** içinde **Parça**. Bu özellikte paketlenen **Parçalar** stoğunun kullanımını kolaylaştırır ve birleştirilir **Parça** kullanılmaz. Paket **Parça** içeriği ""Stoktaki Parça"" için ""Hayır"" ve ""Satıştaki Parça"" seçimi ""Evet"". Örneğin: Laptop ve Arka sırtlığı ayrı ayrı satış paketleri. Ancak müşteri değerlendirmelerini beraberinde alırsa özel fiyattan satarsınız, bu durumda Laptop + Arka sırtlık yeni bir ürün bilgisayarı olacaktır. Açıklama: BOM = Ürün Ağacı", Parent Item,Ana Kalem, -List items that form the package.,Ambalajı oluşturan Ürünleri listeleyin, +List items that form the package.,Ambalajı kimyasal ürünlerini listeleyin, SAL-QTN-.YYYY.-,SAL-QTN-.YYYY.-, -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ı, +Quotation To,Teklif Kime, +Rate at which customer's currency is converted to company's base currency,Müşterinin para biriminin şirketin temel para birimine dönüştürme 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ürme oranı, Additional Discount and Coupon Code,Ek İndirim ve Kupon Kodu, Referral Sales Partner,Tavsiye Satış Ortağı, -In Words will be visible once you save the Quotation.,fiyat teklifini kaydettiğinizde görünür olacaktır, +In Words will be visible once you save the Quotation.,fiyat tekliflerini saklayacağınızda görünür olacaktır, Term Details,Dönem Ayrıntıları, Quotation Item,Teklif Ürünü, -Against Doctype,Karşılık Belge Türü, -Against Docname,Belge adı karşılığı, -Additional Notes,ek Notlar, +Against Doctype,Belge Türüne Karşı, +Against Docname,Belge Adına Karşı, +Additional Notes,Ek Notlar, SAL-ORD-.YYYY.-,SAL-ORD-.YYYY.-, -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., +Skip Delivery Note,Teslim Notunu Atlası, +In Words will be visible once you save the Sales Order.,Satış emrini saklayacağınızda 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, Not Delivered,Teslim Edilmedi, -Fully Delivered,Tamamen Teslim Edilmiş, +Fully Delivered,Tamamen Teslim Edildi, Partly Delivered,Kısmen Teslim Edildi, Not Applicable,Uygulanamaz, % Delivered,% Teslim Edildi, % of materials delivered against this Sales Order,% malzeme bu satış emri karşılığında teslim edildi, % of materials billed against this Sales Order,% malzemenin faturası bu Satış Emri karşılığında oluşturuldu, Not Billed,Faturalanmamış, -Fully Billed,Tam Faturalı, +Fully Billed,Tamamen Faturalandı, Partly Billed,Kısmen Faturalandı, -Ensure Delivery Based on Produced Serial No,Üretilen Seri No'ya Göre Teslimatı Sağlayın, -Supplier delivers to Customer,Tedarikçi Müşteriye teslim, -Delivery Warehouse,Teslim Depo, +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, Planned Quantity,Planlanan Miktar, For Production,Üretim için, -Work Order Qty,Iş emri adet, +Work Order Qty,İş Emri Miktarı, Produced Quantity,Üretilen Miktar, -Used for Production Plan,Üretim Planı için kullanılan, +Used for Production Plan,Üretim Planı için Kullanılır, Sales Partner Type,Satış Ortağı Türü, Contact No.,İletişim No, Contribution (%),Katkı Payı (%), Contribution to Net Total,Net Toplam Katkı, Selling Settings,Satış Ayarları, Settings for Selling Module,Modülü Satış için Ayarlar, -Customer Naming By,Müşterinin Bilinen Adı, -Campaign Naming By,Kampanya İsimlendirmesini yapan, +Customer Naming By,Müşteri Adlandırma buna göre, +Campaign Naming By,Adlandırma Şekli, Default Customer Group,Varsayılan Müşteri Grubu, Default Territory,Standart Bölge, Close Opportunity After Days,Fırsatı Gün Sonra Kapat, -Default Quotation Validity Days,Varsayılan Teklif Geçerlilik Günleri, +Default Quotation Validity Days,Varsayılan Teklif Geçerlilik Günü, Sales Update Frequency,Satış Güncelleme Sıklığı, Each Transaction,Her İşlem, SMS Center,SMS Merkezi, Send To,Gönder, All Contact,Tüm İrtibatlar, -All Customer Contact,Bütün Müşteri İrtibatları, -All Supplier Contact,Bütün Tedarikçi İrtibatları, -All Sales Partner Contact,Bütün Satış Ortağı İrtibatları, -All Lead (Open),Bütün Müşteri Adayları (Açık), +All Customer Contact,Tüm Müşteri İrtibatları, +All Supplier Contact,Tüm Tedarikçi İrtibatları, +All Sales Partner Contact,Tüm Satış Ortağı İrtibatları, +All Lead (Open),Tüm Müşteri Adayları (Açık), All Employee (Active),Tüm Çalışanlar (Aktif), All Sales Person,Bütün Satıcılar, -Create Receiver List,Alıcı listesi oluşturma, -Receiver List,Alıcı Listesi, +Create Receiver List,alıcı listesi oluşturma, +Receiver List,Alıcı listesi, Messages greater than 160 characters will be split into multiple messages,160 karakterden daha büyük mesajlar birden fazla mesaja bölünecektir, -Total Characters,Toplam Karakterler, -Total Message(s),Toplam Mesaj (lar), -Authorization Control,Yetki Kontrolü, +Total Characters,Toplam Karakter, +Total Message(s),Toplam Mesaj, +Authorization Control,Yetkilendirme Kontrolü, Authorization Rule,Yetkilendirme Kuralı, Average Discount,Ortalama İndirim, Customerwise Discount,Müşteri İndirimi, Itemwise Discount,Ürün İndirimi, -Customer or Item,Müşteri ya da Öğe, -Customer / Item Name,Müşteri / Ürün İsmi, +Customer or Item,Müşteri veya Ürün, +Customer / Item Name,Müşteri / Ürün Adı, Authorized Value,Yetkilendirilmiş Değer, -Applicable To (Role),(Rolü) için uygulanabilir, +Applicable To (Role),(Role) uygulanabilir, Applicable To (Employee),(Çalışana) uygulanabilir, Applicable To (User),(Kullanıcıya) Uygulanabilir, Applicable To (Designation),(Görev) için uygulanabilir, @@ -7771,14 +7771,14 @@ Parent Company,Ana Şirket, Default Values,Varsayılan Değerler, Default Holiday List,Tatil Listesini Standart, Default Selling Terms,Varsayılan Satış Koşulları, -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, +Default Buying Terms,Varsayılan Alış Koşulları, +Create Chart Of Accounts Based On,Hesaplar Tabanlı Grafik oluşturma üzerine, +Standard Template,Standart Şablon, Existing Company,Mevcut Şirket, Chart Of Accounts Template,Hesaplar Şablon Grafik, -Existing Company ,mevcut Şirket, +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, @@ -7787,7 +7787,7 @@ Default Cash Account,Standart Kasa Hesabı, Default Receivable Account,Standart Alacak Hesabı, Round Off Cost Center,Yuvarlama Maliyet Merkezi, Discount Allowed Account,İndirim İzinli Hesap, -Discount Received Account,İndirim Alınan Hesap, +Discount Received Account,Alınan indirim Hesabı, Exchange Gain / Loss Account,Kambiyo 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, @@ -7797,17 +7797,17 @@ Default Cost of Goods Sold Account,Ürünler Satılan Hesabı Varsayılan Maliye Default Income Account,Standart Gelir Hesabı, Default Deferred Revenue Account,Varsayılan Ertelenmiş Gelir Hesabı, Default Deferred Expense Account,Varsayılan Ertelenmiş Gider Hesabı, -Default Payroll Payable Account,Standart Bordro Ödenecek Hesap, +Default Payroll Payable Account,Standart Bordro Ödenecek Hesabı, Default Expense Claim Payable Account,Varsayılan Gider Talebi Ödenecek Hesap, Stock Settings,Stok Ayarları, Enable Perpetual Inventory,Sürekli Envanteri Etkinleştir, 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 (Dergi Girişi), -Gain/Loss Account on Asset Disposal,Varlık Bertaraf karı / Zarar Hesabı, +Fixed Asset Depreciation Settings,Sabit Kıymet 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 Bertaraf Kar / Zarar Hesabı, Asset Depreciation Cost Center,Varlık Değer Kaybı Maliyet Merkezi, -Budget Detail,Bütçe Detay, +Budget Detail,Bütçe Detayı, Exception Budget Approver Role,İstisna Bütçe Onaylayan Rolü, Company Info,Şirket Bilgisi, For reference only.,Başvuru için sadece., @@ -7815,89 +7815,89 @@ Company Logo,Şirket logosu, Date of Incorporation,Kuruluş tarihi, Date of Commencement,Başlama tarihi, Phone No,Telefon No, -Company Description,Şirket tanımı, +Company Description,şirket tanımı, Registration Details,Kayıt Detayları, -Company registration numbers for your reference. Tax numbers etc.,Referans için şirket kayıt numaraları. Vergi numaraları vb, -Delete Company Transactions,Şirket İşlemleri sil, +Company registration numbers for your reference. Tax numbers etc.,Referans için şirket kayıt numaraları. vergi numaraları vb., +Delete Company Transactions,Şirket İşlemleri Sil, Currency Exchange,Döviz, -Specify Exchange Rate to convert one currency into another,Döviz Kuru içine başka bir para birimi dönüştürme belirtin, +Specify Exchange Rate to convert one currency into another,Döviz Kuru içine başka bir para birimini kullandığınız, From Currency,Para biriminden, To Currency,Para Birimine, -For Buying,Satın almak için, +For Buying,Almak için, For Selling,Satmak için, Customer Group Name,Müşteri Grup Adı, Parent Customer Group,Ana Müşteri Grubu, Only leaf nodes are allowed in transaction,İşlemde yalnızca yaprak düğümlere izin verilir, -Mention if non-standard receivable account applicable,Mansiyon standart dışı alacak hesabı varsa, +Mention if non-standard receivable account applicable,Standart dışı alacak hesabı varsa belirtiniz, Credit Limits,Kredi limitleri, -Email Digest,E-Mail Bülteni, -Send regular summary reports via Email.,E-posta yoluyla düzenli özet raporlar gönder., -Email Digest Settings,E-Mail Bülteni ayarları, -How frequently?,Ne sıklıkla?, +Email Digest,E-Posta Bülteni, +Send regular summary reports via Email.,E-posta yoluyla düzenli özetler gönderir., +Email Digest Settings,E-Mail Bülteni Ayarları, +How frequently?,Hangi sıklıkla?, Next email will be sent on:,Sonraki e-posta gönderilecek:, -Note: Email will not be sent to disabled users,Not: E-posta engelli kullanıcılara gönderilmeyecektir, -Profit & Loss,Kar kaybı, -New Income,yeni Gelir, -New Expenses,yeni giderler, -Annual Income,Yıllık gelir, -Annual Expenses,yıllık giderler, +Note: Email will not be sent to disabled users,Not: E-posta erişimi engellenmeyecektir, +Profit & Loss,Kar & Zarar, +New Income,Yeni Gelir, +New Expenses,Yeni Gider, +Annual Income,Yıllık Gelir, +Annual Expenses,Yıllık Gider, Bank Balance,Banka Bakiyesi, -Bank Credit Balance,Banka Kredi Bakiyesi, +Bank Credit Balance,Banka Alacak Bakiyesi, Receivables,Alacaklar, Payables,Borçlar, -Sales Orders to Bill,Bill'e Satış Siparişleri, +Sales Orders to Bill,Fatura Satış Siparişleri, Purchase Orders to Bill,Siparişleri Faturaya Alın, -New Sales Orders,Yeni Satış Emirleri, -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, -New Quotations,Yeni Fiyat Teklifleri, -Open Quotations,Teklifleri Aç, -Open Issues,Açık sorunlar, +New Sales Orders,Yeni Satış Siparişleri, +New Purchase Orders,Yeni Satınalma Siparişleri, +Sales Orders to Deliver,Teslim edilecek Satış Siparişleri, +Purchase Orders to Receive,Teslim alınacak Satınalma Siparişleri, +New Purchase Invoice,Yeni Satınalma Faturası, +New Quotations,Yeni Fiyat Teklifi, +Open Quotations,Açık Teklifler, +Open Issues,Açık Sorunlar, Open Projects,Açık Projeler, Purchase Orders Items Overdue,Satın alınan siparişler gecikmiş ürünler, Upcoming Calendar Events,Yaklaşan Takvim Etkinlikleri, -Open To Do,Yapılacaklar Açık, -Add Quote,Alıntı ekle, -Global Defaults,Küresel Varsayılanlar, -Default Company,Standart Firma, +Open To Do,Açık Yapılacaklar, +Add Quote,Teklif Ekle, +Global Defaults,Genel Varsayılanlar, +Default Company,Varsayılan Firma, Current Fiscal Year,Cari Mali Yılı, Default Distance Unit,Varsayılan Mesafe Birimi, -Hide Currency Symbol,Para birimi simgesini gizle, +Hide Currency Symbol,Para Birimi Simgesini Gizle, 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, 'Rounded Total' field will not be visible in any transaction","Devre dışıysa, 'Yuvarlanmış Toplam' alanı hiçbir işlemde görülmeyecektir.", +Disable In Words,Sözler 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ünmeyecek", Item Classification,Ürün Sınıflandırması, General Settings,Genel Ayarlar, Item Group Name,Ürün Grup Adı, Parent Item Group,Ana Kalem Grubu, -Item Group Defaults,Öğe Grubu Varsayılanları, +Item Group Defaults,Ürün Grubu Varsayılanları, Item Tax,Ürün Vergisi, -Check this if you want to show in website,Web sitesinde göstermek istiyorsanız işaretleyin, +Check this if you want to show in website,Web sitesinde göstermek istiyorsanız bunu işaretleyin, Show this slideshow at the top of the page,Sayfanın üstünde bu slayt gösterisini göster, -HTML / Banner that will show on the top of product list.,Ürün listesinin tepesinde görünecek HTML / Banner., -Set prefix for numbering series on your transactions,İşlemlerinizde seri numaralandırma için ön ek ayarlayın, -Setup Series,Kurulum Serisi, +HTML / Banner that will show on the top of product list.,Ürün listesinin muhafazaları HTML / Banner., +Set prefix for numbering series on your transactions,İşlemlerinizde seri numaralandırma için ön ek ayarı, +Setup Series,Seri Kurulumu, Select Transaction,İşlem Seçin, -Help HTML,Yardım HTML, +Help HTML,Yardım HTML'si, Series List for this Transaction,Bu İşlem için Seri Listesi, User must always select,Kullanıcı her zaman seçmelidir, -Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Kullanıcıya kaydetmeden önce seri seçtirmek istiyorsanız işaretleyin. Eğer işaretlerseniz atanmış seri olmayacaktır., +Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Kullanıcıya kaydetmekten önce seri seçmek istiyorum. Eğer işaretlerseniz atanmış seri olmayacak., Update Series,Seriyi Güncelle, -Change the starting / current sequence number of an existing series.,Varolan bir serinin başlangıç / geçerli sıra numarasını değiştirin., +Change the starting / current sequence number of an existing series.,Varolan bir serinin başlangıcı / geçerli sıra numarası kuralları., Prefix,Önek, -Current Value,Mevcut değer, -This is the number of the last created transaction with this prefix,Bu ön ekle son oluşturulmuş işlemlerin sayısıdır, +Current Value,Geçerli Değer, +This is the number of the last created transaction with this prefix,Bu ön ekle son genişleme miktarıdır, Update Series Number,Seri Numaralarını Güncelle, Quotation Lost Reason,Teklif Kayıp Nedeni, -A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.,Bir komisyon için şirketlerin ürünlerini satan bir üçüncü taraf dağıtıcı / bayi / komisyon ajan / ortaklık / bayi., +A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.,Bir komisyon için kuruluşlar birimleri şeytan bir üçüncü taraf sağlayıcı / bayi / komisyon ajan / ortaklık / bayi., Sales Partner Name,Satış Ortağı Adı, Partner Type,Ortak Türü, Address & Contacts,Adresler ve Kontaklar, Address Desc,Azalan Adres, -Contact Desc,İrtibat Desc, +Contact Desc,İrtibat Azalt, Sales Partner Target,Satış Ortağı Hedefi, Targets,Hedefler, Show In Website,Web sitesinde Göster, @@ -7905,33 +7905,33 @@ Referral Code,Yönlendirme Kodu, 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., +All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.,Ayarlamak ve motive etmek böylece tüm satış işlemlerini birdenbire ** Satış Kişilerin ** karşı etiketlenmiş olabilir., Name and Employee ID,İsim ve Çalışan Kimliği, Sales Person Name,Satış Personeli Adı, Parent Sales Person,Ana Satış Elemanı, -Select company name first.,Önce şirket adı seçiniz, +Select company name first.,Önce şirket adını seçiniz, Sales Person Targets,Satış Personeli Hedefleri, -Set targets Item Group-wise for this Sales Person.,Bu Satış Kişisi için Ürün Grubu hedefleri ayarlayın, +Set targets Item Group-wise for this Sales Person.,Bu Satış Kişisi için Ürün Grubu not ayarı, Supplier Group Name,Tedarikçi Grubu Adı, Parent Supplier Group,Ana Tedarikçi Grubu, Target Detail,Hedef Detayı, Target Qty,Hedef Miktarı, Target Amount,Hedef Miktarı, Target Distribution,Hedef Dağıtımı, -"Standard Terms and Conditions that can be added to Sales and Purchases.\n\nExamples:\n\n1. Validity of the offer.\n1. Payment Terms (In Advance, On Credit, part advance etc).\n1. What is extra (or payable by the Customer).\n1. Safety / usage warning.\n1. Warranty if any.\n1. Returns Policy.\n1. Terms of shipping, if applicable.\n1. Ways of addressing disputes, indemnity, liability, etc.\n1. Address and Contact of your Company.","Standart Şartlar ve Satış ve Alımlar eklenebilir Koşullar.\n\n Örnekler: \n\n 1. Teklifin geçerliliği.\n 1. Ödeme Koşulları (Kredi On Önceden, bölüm avans vb).\n 1. Ne ekstra (veya Müşteri tarafından tahsil edilir).\n 1. Güvenlik / kullanım uyarısı.\n 1. Garanti alınırlar.\n 1. Politikası döndürür.\n 1. Nakliye koşulları, varsa.\n 1. Vb adresleme uyuşmazlıkların, tazminat, sorumluluk, \n 1 Yolları. Adres ve Şirket İletişim.", -Applicable Modules,Uygulanabilir modülleri, +"Standard Terms and Conditions that can be added to Sales and Purchases.\n\nExamples:\n\n1. Validity of the offer.\n1. Payment Terms (In Advance, On Credit, part advance etc).\n1. What is extra (or payable by the Customer).\n1. Safety / usage warning.\n1. Warranty if any.\n1. Returns Policy.\n1. Terms of shipping, if applicable.\n1. Ways of addressing disputes, indemnity, liability, etc.\n1. Address and Contact of your Company.","Standart Şartlar ve Satış ve Alımlar eklenebilir Koşullar.\n\n Örnekler: \n\n 1. Teklifin geçerliliği.\n 1. Ödeme Koşulları (Kredi On geçen, bölüm avans vb).\n 1. Ne ekstra (veya müşteri tarafından) verilir).\n 1. Güvenlik / kullanım tahsilat uyarısı.\n 1. Garanti alınırlar.\n 1. Politikası gider.\n 1. Nakliye koşulları, varsa.\n 1. Vb adresleme uyuşmazlıkların, tazminat, sorumluluk, \n 1 Yolları. Adres ve Şirket İletişim.", +Applicable Modules,uygulanabilir modülleri, Terms and Conditions Help,Şartlar ve Koşullar Yardım, -Classification of Customers by region,Bölgelere göre Müşteriler sınıflandırılması, +Classification of Customers by region,Bölgelere göre Müşteriler yerleşimi, Territory Name,Bölge Adı, Parent Territory,Ana Bölge, -Territory Manager,Bölge Müdürü, +Territory Manager,Bölge Yöneticisi, 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., +Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,Bu bölge grubu Ürün bütçeleri ayarlanır. Dağıtımı ayarlayarak dönemsellik de çalıştırma., UOM Name,Ölçü Birimi, -Check this to disallow fractions. (for Nos),Kesirlere izin vermemek için işaretleyin (Numaralar için), +Check this to disallow fractions. (for Nos),Kesirlere izin vermek için ayrılmak (Numaralar için), Website Item Group,Web Sitesi Ürün Grubu, -Cross Listing of Item in multiple groups,Çoklu gruplarda Ürün Cross İlanı, +Cross Listing of Item in multiple groups,Öğenin birden çok grupta Çapraz Listelenmesi, 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ı, @@ -7940,29 +7940,29 @@ Show Price,Fiyatı Göster, 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, -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, +Show Apply Coupon Code,Kupon Kodu Uygula'yı göster, +Allow items not in stock to be added to cart,Stokta olmayan böceklerin sepetine yayılmasına izin ver, +Prices will not be shown if Price List is not set,Fiyat Listesi ayarlı fiyatları fiyatları düşürmez, Quotation Series,Teklif Serisi, Checkout Settings,Ödeme Ayarları, -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,Toplu İş Ayrıntıları, -Batch ID,Parti numarası, +Enable Checkout,Ödeme Etkinleştir, +Payment Success Url,Ödeme Başarı URL'si, +After payment completion redirect user to selected page.,Ödemeyi aldıktan sonra kullanıcıyı seçilen sayfaya yönlendirin., +Batch Details,Batch Ayrıntıları, +Batch ID,Batch ID, image,görüntü, -Parent Batch,Ana Parti, -Manufacturing Date,Üretim tarihi, -Batch Quantity,Parti Miktarı, -Batch UOM,Toplu UOM, +Parent Batch,Ana Batch, +Manufacturing Date,Üretim Tarihi, +Batch Quantity,Batch Miktarı, +Batch UOM,Batch Birimi, Source Document Type,Kaynak Belge Türü, Source Document Name,Kaynak Belge Adı, -Batch Description,Parti Açıklaması, +Batch Description,Bölüm 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ı, +Reserved Qty for sub contract,Alt sözleşme için ayrılan miktar, Moving Average Rate,Hareketli Ortalama Kuru, FCFS Rate,FCFS Oranı, Customs Tariff Number,Gümrük Tarife numarası, @@ -7970,163 +7970,163 @@ 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,İrsaliye Karşılığı İade, -Customer's Purchase Order No,Müşterinin Sipariş numarası, +Issue Credit Note,Alacak Dekontu Ver, +Return Against Delivery Note,İrsaliye Karşılığında İade, +Customer's Purchase Order No,Müşterinin Satınalma 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.", -In Words will be visible once you save the Delivery Note.,Tutarın Yazılı Hali İrsaliyeyi kaydettiğinizde görünür olacaktır, -In Words (Export) will be visible once you save the Delivery Note.,Tutarın Yazılı Hali (İhracat) İrsaliyeyi kaydettiğinizde görünür olacaktır., -Transporter Info,Taşıyıcı Bilgisi, -Driver Name,Sürücü adı, +"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 Şablonu standart bir şablon oluşturulduysa, birini seçin ve aşağıdaki butona tıklayın.", +In Words will be visible once you save the Delivery Note.,Tutarın Yazılı Hali İrsaliyeyi koruduğunuzda görünür olacaktır, +In Words (Export) will be visible once you save the Delivery Note.,Tutarın Yazılı Hali (İhracat) İrsaliyeyi kurtaracağınızde görünür olacaktır., +Transporter Info,Nakliyeci Bilgisi, +Driver Name,Şoför 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, +% of materials delivered against this Delivery Note,% malzeme bu İrsaliye deposu teslim edildi, Installation Status,Kurulum Durumu, Excise Page Number,Tüketim Sayfa Numarası, Instructions,Talimatlar, -From Warehouse,Atölyesi'nden, -Against Sales Order,Satış Emri Karşılığı, +From Warehouse,Depodan, +Against Sales Order,Satış Siparişi Karşılığı, Against Sales Order Item,Satış Sipariş Kalemi karşılığı, Against Sales Invoice,Satış Faturası Karşılığı, Against Sales Invoice Item,Satış Fatura Kalemi karşılığı, -Available Batch Qty at From Warehouse,Depodaki Mevcut Parti Miktarı, -Available Qty at From Warehouse,Alınacağı Depodaki Mevcut Miktar, +Available Batch Qty at From Warehouse,Depodaki Kullanılabilir Parti Miktarı, +Available Qty at From Warehouse,Depodaki Kullanılabilir Miktar, Delivery Settings,Teslimat Ayarları, Dispatch Settings,Sevk Ayarları, Dispatch Notification Template,Sevk Bildirim Şablonu, Dispatch Notification Attachment,Sevk Bildirimi Eki, -Leave blank to use the standard Delivery Note format,Standart Teslimat Not formatını kullanmak için boş bırakın, +Leave blank to use the standard Delivery Note format,Standart İrsaliye formatı kullanmak için boş bırakın, Send with Attachment,Ek ile Gönder, Delay between Delivery Stops,Teslimat Durakları arasındaki gecikme, Delivery Stop,Teslimat Durdur, -Lock,Kilit, +Lock,kilit, Visited,Ziyaret, Order Information,Sipariş Bilgisi, -Contact Information,İletişim bilgileri, +Contact Information,iletişim bilgileri, Email sent to,E-posta Gönderilen, Dispatch Information,Sevk Bilgileri, -Estimated Arrival,tahmini varış, +Estimated Arrival,tahmini gerçekleştirme, MAT-DT-.YYYY.-,MAT-DT-.YYYY.-, Initial Email Notification Sent,Gönderilen İlk E-posta Bildirimi, Delivery Details,Teslim Bilgileri, Driver Email,Sürücü E-postası, Driver Address,Sürücü Adresi, Total Estimated Distance,Toplam Tahmini Mesafe, -Distance UOM,Uzak UOM, -Departure Time,Hareket saati, +Distance UOM,uzak UOM, +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 tahmini kullanım kullanımlarını hesaplamak için Google Haritalar Yönü API'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, -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.", +In Transit,transit olarak, +Fulfillment User,Yerine getirme kullanıcı, +"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 verileri 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,Hub'dan Öğe Var mı, +"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 şablonundan kurulacak vb başka bir öğe bir tahmini ise", +Is Item from Hub,Hub'dan Öğe Var mı, Default Unit of Measure,Varsayılan Ölçü Birimi, -Maintain Stock,Stok koruyun, +Maintain Stock,Stok Takibi Yap, Standard Selling Rate,Standart Satış Oranı, -Auto Create Assets on Purchase,Satın Almada Varlıkları Otomatik Oluştur, +Auto Create Assets on Purchase,Satınalmada Varlıkları Otomatik Oluştur, Asset Naming Series,Öğe Adlandırma Dizisi, -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, +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 Bitişi, +Default Material Request Type,Varsayılan Malzeme Talep Türü, Valuation Method,Değerleme Yöntemi, FIFO,FIFO, Moving Average,Hareketli Ortalama, -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, +Warranty Period (in days),Garanti Süresi (gün), +Auto re-order,Otomatik Yeniden Sipariş, +Reorder level based on Warehouse,Depo bazlı Yeniden sipariş seviyesi, +Will also apply for variants unless overrridden,Geçersiz kılınmadığı sürece varyantlar için de geçerli olacaktır., +Units of Measure,Ölçü Birimleri, +Will also apply for variants,Varyantlar için de geçerli olacak, +Serial Nos and Batches,Seri No ve Batches (Parti), 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.", +Batch Number Series,Batch/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 Toplu İş No'dan kısaca bahsetmek isterseniz, bunu boş bırakın. Not: Bu ayar, Stok Ayarları'nda Adlandırma Serisi Önekine göre öncelikli olacaktır.", Has Expiry Date,Vade Sonu Var, -Retain Sample,Numune Alın, +Retain Sample,Numuneyi Sakla, Max Sample Quantity,Maksimum Numune Miktarı, Maximum sample quantity that can be retained,Tutulabilen maksimum numune miktarı, -Has Serial No,Seri no Var, +Has Serial No,Seri Numarası Var, 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.", +"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:. Seri ayarladı ve Seri No belirtilen istenen ABCD ##### \n, daha sonra otomatik seri numarası bu seriye dayalı olarak oluşturulur. Her zaman geniş bu öğe için seri No konuşmak istiyorum. Bu boş bırakın.", Variants,Varyantlar, -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,Varyant Dayalı, -Item Attribute,Ürün Özellik, -"Sales, Purchase, Accounting Defaults","Satış, Satınalma, Muhasebe Varsayılanları", -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, +Has Variants,Varyantları Var, +"If this item has variants, then it cannot be selected in sales orders etc.","Bu öğeyi görmeleri varsa, o zaman satış siparişleri vb seçilemez", +Variant Based On,Varyant Tabanlı, +Item Attribute,Ürün Özelliği, +"Sales, Purchase, Accounting Defaults","Satış, Satınalma, Varsayılan Muhasebeleri", +Item Defaults,Ürün Varsayılanları, +"Purchase, Replenishment Details","Satınalma, Yenileme Detayları", +Is Purchase Item,Satınalma Kalemi mi, +Default Purchase Unit of Measure,Varsayılan Alış Birimi, Minimum Order Qty,Minimum Sipariş Miktarı, -Minimum quantity should be as per Stock UOM,Minimum miktar Stok UOM'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 Temin Edildi mi?, -Delivered by Supplier (Drop Ship),Yüklenici tarafından teslim (Bırak Gemi), -Supplier Items,Tedarikçi Öğeler, +Minimum quantity should be as per Stock UOM,Minimum miktar Stok Birimine göre olmalıdır, +Average time taken by the supplier to deliver,Tedarikçinin teslim etmesi için geçen ortalama süre, +Is Customer Provided Item,Müşteri Tarafından Sağlanan Öğe mi, +Delivered by Supplier (Drop Ship),Tedarikçi tarafından teslim edildi (Drop Ship), +Supplier Items,Tedarikçi Öğeleri, Foreign Trade Details,Dış Ticaret Detayları, Country of Origin,Menşei ülke, -Sales Details,Satış Ayrıntılar, +Sales Details,Satış Ayrıntıları, Default Sales Unit of Measure,Varsayılan Öğe Satış Birimi, -Is Sales Item,Satış Maddesi, -Max Discount (%),En fazla İndirim (%, +Is Sales Item,Satış Kalemi mi, +Max Discount (%),Maksimum İndirim (%), No of Months,Ayların Sayısı, -Customer Items,Müşteri Öğeler, +Customer Items,Müşteri Öğeleri, Inspection Criteria,Muayene Kriterleri, -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, +Inspection Required before Purchase,Satınalma öncesi Muayene Gerekli, +Inspection Required before Delivery,Teslimat öncesi Muayene Gerekli, +Default BOM,Standart Ürün Ağacı, +Supply Raw Materials for Purchase,Satınalma için Hammadde Temini, +If subcontracted to a vendor,Bir satıcıya taşero edildi mi, Customer Code,Müşteri Kodu, 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,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", +Items with higher weightage will be shown higher,Yüksek ağırlık Öğeler yüksek gösterim, +Show a slideshow at the top of the page,Sayfanın üstünde bir slayt öğretmen gösterisi, +Website Image,Websitesi Resmi, +Website Warehouse,Web Sitesi Deposu, +"Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.","Depodaki mevcut stok ölçülerine 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, +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,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., +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 dizsi kullanabilirsiniz. Öğe Sayfanızda gösterilecek., Total Projected Qty,Tahmini toplam Adet, Hub Publishing Details,Hub Yayınlama Ayrıntıları, -Publish in Hub,Hub Yayınla, +Publish in Hub,Hubta 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.",Yayın için "Stokta" ya da "Stokta Bulunmadı" on Hub bu stokta mevcut bulunan stokları esas alın., +Hub Category to Publish,Yayın Merkezi Kategorisi olacak, +Hub Warehouse,Hub Deposu, +"Publish ""In Stock"" or ""Not in Stock"" on Hub based on stock available in this warehouse.",Yayın için "Stokta" ya da "Stokta Bulunamadı" on Hub bu stokta bulunan stokları esas alın., Synced With Hub,Hub ile Senkronize, -Item Alternative,Öğe alternatif, +Item Alternative,Ürün Alternatifi, Alternative Item Code,Alternatif Ürün Kodu, Two-way,Çift yönlü, Alternative Item Name,Alternatif öğe adı, Attribute Name,Öznitelik Adı, Numeric Values,Sayısal Değerler, -From Range,Sınıfımızda, +From Range,Baş. Oranı, Increment,Artım, -To Range,Range, -Item Attribute Values,Ürün Özellik Değerler, +To Range,Bitiş Oranı, +Item Attribute Values,Ürün Özellik Değerleri, Item Attribute Value,Ürün Özellik Değeri, -Attribute Value,Değer Özellik, +Attribute Value,Özellik Değeri, 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", +"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 tahmini Ürün Kodu eklenecektir. Senin anlatımı ""SM"", ve eğer, örneğin, ürün kodu ""T-Shirt"", ""T-Shirt-SM"" olacağını öngörmenin madde kodu", Item Barcode,Ürün Barkodu, Barcode Type,Barkod Türü, EAN,EAN, @@ -8134,10 +8134,10 @@ UPC-A,UPC-A, Item Customer Detail,Ürün Müşteri Detayı, "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ın Alma Varsayılanları, +Item Default,öğe girişi, +Purchase Defaults,Satınalma Varsayılanları, Default Buying Cost Center,Standart Alış Maliyet Merkezi, -Default Supplier,Standart Tedarikçi, +Default Supplier,standart tedarikçi, Default Expense Account,Standart Gider Hesabı, Sales Defaults,Satış Varsayılanları, Default Selling Cost Center,Standart Satış Maliyet Merkezi, @@ -8146,103 +8146,103 @@ Item Price,Ürün Fiyatı, Packing Unit,Paketleme birimi, Quantity that must be bought or sold per UOM,UOM başına satın alınması veya satılması gereken miktar, Item Quality Inspection Parameter,Ürün Kalite Kontrol Parametreleri, -Acceptance Criteria,Kabul Kriterleri, +Acceptance Criteria,Kabil Kriterleri, Item Reorder,Ürün Yeniden Sipariş, -Check in (group),(Grup) kontrol, -Request for,Talebi, -Re-order Level,Yeniden sipariş seviyesi, -Re-order Qty,Yeniden sipariş Adet, +Check in (group),Check-in (grup), +Request for,Talep şunun için, +Re-order Level,Yeniden Sipariş Seviyesi, +Re-order Qty,Yeniden Sipariş Adet, Item Supplier,Ürün Tedarikçisi, -Item Variant,Öğe Varyant, +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., +Rename Attribute Value in Item Attribute.,Öğe Özniteliğinde Öznitelik Değerini Yeniden Adlandırın., 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, +Table for Item that will be shown in Web Site,Web Sitesi gösterimi Öğe için Tablo, Landed Cost Item,İnen Maliyet Kalemi, -Receipt Document Type,Makbuz Belge Türü, -Receipt Document,makbuz Belgesi, +Receipt Document Type,Fiş Belge Türü, +Receipt Document,Fiş Belgesi, Applicable Charges,Uygulanabilir Ücretler, -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, +Purchase Receipt Item,Alış Fişi Ürünleri, +Landed Cost Purchase Receipt,Yüklenen Maliyet Alış Fişi, +Landed Cost Taxes and Charges,Yüklenen Maliyet Vergiler ve Harçlar, +Landed Cost Voucher,Yüklenen Maliyet Fişi, MAT-LCV-.YYYY.-,MAT-LCV-.YYYY.-, -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,Öğeler kullanılan Üreticileri, -Limited to 12 characters,12 karakter ile sınırlıdır, -MAT-MR-.YYYY.-,MAT-MR-.YYYY.-, +Purchase Receipts,Satınalma İrsaliyeleri, +Purchase Receipt Items,Satınalma İrsaliyesi Ürünleri, +Get Items From Purchase Receipts,Satınalma İrsaliyesinden Ürünleri Getir, +Distribute Charges Based On,Masrafları Şuna göre Dağıt, +Landed Cost Help,Son teslim alma Maliyet Yardımı, +Manufacturers used in Items,Kullanılan Öğeler Üreticileri, +Limited to 12 characters,12 karakter ile sınırlı, +MAT-MR-.YYYY.-,MAT-BAY-.YYYY.-, Partially Ordered,Kısmen Sipariş Edildi, Transferred,aktarılan, -% Ordered,% Sipariş edildi, +% Ordered,% Sipariş verildi, 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, +Prevdoc DocType,Önceki Doküman, 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.", +"Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.","Teslim edilecek paketler için sevk irsaliyeleri oluşturun. Paket numarasını, 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.-, From Package No.,Ambalaj Numarasından., -Identification of the package for the delivery (for print),(Baskı için) teslimat için ambalajın tanımlanması, -To Package No.,Ambalaj No., +Identification of the package for the delivery (for print),(Baskı için) teslimat için ambalajın maliyeti, +To Package No.,ambalaj numarası, If more than one package of the same type (for print),(Baskı için) aynı ambalajdan birden fazla varsa, Package Weight Details,Ambalaj Ağırlığı Detayları, -The net weight of this package. (calculated automatically as sum of net weight of items),Bu paketin net ağırlığı (Ürünlerin net toplamından otomatik olarak hesaplanır), +The net weight of this package. (calculated automatically as sum of net weight of items),Bu paketin net ağırlığı (Ürünlerin net toplamından otomatik olarak çıkarılması), Net Weight UOM,Net Ağırlık Ölçü Birimi, Gross Weight,Brüt Ağırlık, -The gross weight of the package. Usually net weight + packaging material weight. (for print),Paketin brüt ağırlığı. Genellikle net ağırlığı + ambalaj Ürünü ağırlığı. (Baskı için), +The gross weight of the package. Usually net weight + packaging material weight. (for print),Paketin ağır ağırlığı. Genellikle net ağırlık + ambalaj ürün ağırlığı. (Baskı için), Gross Weight UOM,Brüt Ağırlık Ölçü Birimi, -Packing Slip Item,Ambalaj Makbuzu Ürünleri, +Packing Slip Item,Sevk İrsaliyesi Kalemi, DN Detail,DN Detay, STO-PICK-.YYYY.-,STO SEÇME-.YYYY.-, -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.", +Material Transfer for Manufacture,Üretim için Malzeme Transferi, +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 verecek.", Parent Warehouse,Ana Depo, -Items under this warehouse will be suggested,Bu depo altındaki ürünler önerilecektir, +Items under this warehouse will be suggested,Bu depodaki ürünler önerilecek, Get Item Locations,Öğe Konumlarını Alın, Item Locations,Öğe Konumları, Pick List Item,Liste Öğesini Seç, -Picked Qty,Alınan Miktar, -Price List Master,Fiyat Listesi Ana, +Picked Qty,Toplanan Miktar, +Price List Master,Fiyat Listesi Master, Price List Name,Fiyat Listesi Adı, -Price Not UOM Dependent,Fiyat UOM Bağımlı Değil, -Applicable for Countries,Ülkeler için geçerlidir, -Price List Country,Fiyat Listesi Ülke, +Price Not UOM Dependent,Fiyat Birime Bağlı Değil, +Applicable for Countries,Geçerli olduğu Ülkeler, +Price List Country,Fiyat Listesi Ülkesi, MAT-PRE-.YYYY.-,MAT-ÖN .YYYY.-, -Supplier Delivery Note,Tedarikçi Teslim Notu, +Supplier Delivery Note,Tedarikçi İrsaliyesi, Time at which materials were received,Malzemelerin alındığı zaman, -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., +Return Against Purchase Receipt,İrsaliye Karşılığında İade, +Rate at which supplier's currency is converted to company's base currency,Tedarikçinin para biriminin şirketin temel para birimine dönüştürme oranı, +Sets 'Accepted Warehouse' in each row of the items table.,Kalemler tablosunun her tablosunda 'Kabil Edilen Depo' ayarlar., +Sets 'Rejected Warehouse' in each row of the items table.,Kalemler tablosunun her tablosunda 'Reddedilen Depo' ayarlar., Raw Materials Consumed,Tüketilen Hammaddeler, -Get Current Stock,Cari Stok alın, +Get Current Stock,Mevcut Stoğu Al, Consumed Items,Tüketilen Ürünler, Add / Edit Taxes and Charges,Ekle / Düzenle Vergi ve Harçlar, -Auto Repeat Detail,Otomatik tekrar detayı, -Transporter Details,Taşıyıcı Detayları, -Vehicle Number,Araç Sayısı, +Auto Repeat Detail,Otomatik Tekrar Detayı, +Transporter Details,Nakliyeci Detayları, +Vehicle Number,Araç Numarası, Vehicle Date,Araç Tarihi, 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, +Rejected Quantity,Reddilen Miktar, +Accepted Qty as per Stock UOM,Stok Birimine göre Kabul edilen Miktar, Sample Quantity,Numune Miktarı, Rate and Amount,Oran ve Miktar, MAT-QA-.YYYY.-,MAT-QA .YYYY.-, -Report Date,Rapor Tarihi, +Report Date,Tarihi Rapor, Inspection Type,Muayene Türü, Item Serial No,Ürün Seri No, Sample Size,Numune Miktarı, @@ -8261,9 +8261,9 @@ Reading 9,9 Okuma, Reading 10,10 Okuma, Quality Inspection Template Name,Kalite Kontrol Şablonu Adı, Quick Stock Balance,Hızlı Stok Bakiyesi, -Available Quantity,Mevcut Miktarı, +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 Girdisi / İrsaliye / Satın Alım Makbuzu üzerinden değiştirilebilir, +Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,Depo yalnızca Stok Hareketi / İrsaliye / Alış Fişi ü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, @@ -8271,12 +8271,12 @@ Creation Date,Oluşturulma Tarihi, Creation Time,Oluşturma Zamanı, Asset Details,Varlık Ayrıntıları, Asset Status,Varlık Durumu, -Delivery Document Type,Teslim Belge Türü, -Delivery Document No,Teslim Belge No, +Delivery Document Type,Teslim Belgesi Türü, +Delivery Document No,Teslim Belgesi No, Delivery Time,İrsaliye Zamanı, -Invoice Details,Fatura detayları, +Invoice Details,Fatura Detayları, Warranty / AMC Details,Garanti / AMC Detayları, -Warranty Expiry Date,Garanti Son Kullanma Tarihi, +Warranty Expiry Date,Garanti Son Kullanım Tarihi, AMC Expiry Date,AMC Bitiş Tarihi, Under Warranty,Garanti Altında, Out of Warranty,Garanti Dışı, @@ -8285,96 +8285,96 @@ Out of AMC,Çıkış AMC, Warranty Period (Days),Garanti Süresi (Gün), Serial No Details,Seri No Detayları, MAT-STE-.YYYY.-,MAT-STE-.YYYY.-, -Stock Entry Type,Stok girişi türü, -Stock Entry (Outward GIT),Stok Girişi (Dışa GIT), +Stock Entry Type,Stok Hareket Türü, +Stock Entry (Outward GIT),Stok Hareketi (Dışa GIT), Material Consumption for Manufacture,Üretimde Malzeme Tüketimi, -Repack,Yeniden paketlemek, -Send to Subcontractor,Taşeron'a Gönder, +Repack,Yeniden Paketle, +Send to Subcontractor,Taşeron'a Gönder, Delivery Note No,İrsaliye No, Sales Invoice No,Satış Fatura No, Purchase Receipt No,Satın alma makbuzu numarası, Inspection Required,Muayene Gerekli, -From BOM,BOM Gönderen, +From BOM,İlgili BOM, For Quantity,Miktar, -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, +As per Stock UOM,Stok Birimine göre, +Including items for sub assemblies,Alt montajlar için öğeler dahil, +Default Source Warehouse,Varsayılan Kaynak Depo, Source Warehouse Address,Kaynak Depo Adresi, Default Target Warehouse,Standart Hedef Depo, Target Warehouse Address,Hedef Depo Adresi, -Update Rate and Availability,Güncelleme Oranı ve Kullanılabilirlik, +Update Rate and Availability,Oranı ve Kullanılabilirliği Güncelle, Total Incoming Value,Toplam Gelen Değeri, Total Outgoing Value,Toplam Giden Değeri, -Total Value Difference (Out - In),Toplam Değer Farkı (Out - In), -Additional Costs,Ek maliyetler, +Total Value Difference (Out - In),Toplam Değer Farkı (Dış - Giriş), +Additional Costs,Ek geçitler, 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 Girdisi Detayı, -Basic Rate (as per Stock UOM),Temel Oranı (Stok Ölçü Birimi göre), +Stock Entry Detail,Stok Hareketi Detayı, +Basic Rate (as per Stock UOM),Temel Oran (Stok Birimine 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 girdisini yapmak için kullanılan Malzeme Talebi, +BOM No. for a Finished Good Item,Biten İyi Ürün için ürün ağacı numarası, +Material Request used to make this Stock Entry,Bu stok hareketini 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, +Against Stock Entry,Stok Hareketine karşı, +Stock Entry Child,Stok Hareketi Alt, PO Supplied Item,PO Tedarik Edilen Öğe, -Reference Purchase Receipt,Referans Satın Alma Fişi, -Stock Ledger Entry,Stok Defter Girdisi, +Reference Purchase Receipt,Referans Satınalma Fişi, +Stock Ledger Entry,Stok Defter Girişi, Outgoing Rate,Giden Oranı, 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 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.", +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 sistem stok miktarı ve değerleme düzeltmeleri için yardımcı olur. Genellikle sistem değerleri ve ne aslında depolarda var eşitlemek için kullanılır.", MAT-RECO-.YYYY.-,MAT-Reco-.YYYY.-, Reconciliation JSON,Mutabakat JSON, Stock Reconciliation Item,Stok Mutabakat Kalemi, -Before reconciliation,Mutabakat öncesinde, -Current Serial No,Geçerli Seri No, +Before reconciliation,Mutabakat öncesi, +Current Serial No,servis seri no, 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,Göster Barkod Alanı, -Convert Item Description to Clean HTML,Öğe Açıklamaunu Temiz HTML'ye Dönüştür, -Allow Negative Stock,Negatif stok seviyesine izin ver, +Convert Item Description to Clean HTML,Açıklama Öğesini Temiz HTML'ye Dönüştür, +Allow Negative Stock,Negatif Stoğa İzin 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,Donmuş Stok Girdileri, +Freeze Stock Entries,Donmuş Stok Hareketleri, Stock Frozen Upto,Stok Dondurulmuş, Batch Identification,Toplu Tanımlama, -Use Naming Series,Adlandırma Dizisini Kullan, +Use Naming Series,Adlandırma Dizisini Kullanım, Naming Series Prefix,Seri Öneki Adlandırma, UOM Category,UOM Kategorisi, UOM Conversion Detail,Ölçü Birimi Dönüşüm Detayı, Variant Field,Varyant Alanı, -A logical Warehouse against which stock entries are made.,Stok girişleri mantıksal Depoya karşı yapıldı, +A logical Warehouse against which stock entries are made.,Stok girişleri Depoya karşı yapıldı, Warehouse Detail,Depo Detayı, Warehouse Name,Depo Adı, Warehouse Contact Info,Depo İletişim Bilgileri, -PIN,TOPLU İĞNE, +PIN,PIN, ISS-.YYYY.-,ISS-.YYYY.-, -Raised By (Email),(Email) ile talep eden, +Raised By (Email),Talep eden (Email), Issue Type,Sorun Tipi, -Issue Split From,Sayıdan Böl, -Service Level,Servis seviyesi, +Issue Split From,Sorunun Ayrıldığı Yer, +Service Level,Hizmet Seviyesi, Response By,Yanıtla, Response By Variance,Varyans Yanıtı, -Ongoing,Devam eden, -Resolution By,Çözünürlük, +Ongoing,Devam ediyor, +Resolution By,Çözen, Resolution By Variance,Varyans ile Çözünürlük, Service Level Agreement Creation,Hizmet Seviyesi Anlaşması Oluşturma, -First Responded On,İlk cevap verilen, +First Responded On,İlk Yanıt Tarihi, Resolution Details,Karar Detayları, Opening Date,Açılış Tarihi, Opening Time,Açılış Zamanı, @@ -8383,29 +8383,29 @@ Via Customer Portal,Müşteri Portalı üzerinden, Support Team,Destek Ekibi, Issue Priority,Sorun Önceliği, Service Day,Hizmet günü, -Workday,iş günü, +Workday,Çalışma günü, Default Priority,Varsayılan Öncelik, -Priorities,Öncelikleri, +Priorities,Öncelikler, Support Hours,Destek Saatleri, Support and Resolution,Destek ve Çözünürlük, Default Service Level Agreement,Varsayılan Servis Seviyesi Sözleşmesi, -Entity,varlık, +Entity,Tüzel, Agreement Details,Anlaşma Detayları, Response and Resolution Time,Tepki ve Çözünürlük Zamanı, Service Level Priority,Servis Seviyesi Önceliği, -Resolution Time,Çözünürlük zaman, +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 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, +Post Route String,Rota Dizisi Gönder, Post Route Key List,Rota Rota Listesini Kaydet, Post Title Key,Yazı Başlığı Anahtarı, -Post Description Key,Mesaj Açıklaması Anahtarı, +Post Description Key,Mesaj Açıklama Anahtarı, Link Options,Bağlantı Seçenekleri, -Source DocType,Kaynak DocType, +Source DocType,Kaynak Belge Türü, Result Title Field,Sonuç Başlık Alanı, Result Preview Field,Sonuç Önizleme Alanı, Result Route Field,Sonuç Rota Alanı, @@ -8426,23 +8426,23 @@ Search APIs,Arama API'ları, SER-WRN-.YYYY.-,SER-UYR-.YYYY.-, Issue Date,Veriliş tarihi, Item and Warranty Details,Ürün ve Garanti Detayları, -Warranty / AMC Status,Garanti / AMC Durum, -Resolved By,Tarafından Çözülmüştür, +Warranty / AMC Status,Garanti / AMC Durumu, +Resolved By,Çözen, Service Address,Servis Adresi, -If different than customer address,Müşteri adresinden farklı ise, +If different than customer address,Müşteri şirketinden farklı ise, Raised By,Talep eden, From Company,Şirketten, -Rename Tool,yeniden adlandırma aracı, -Utilities,Programlar, +Rename Tool,Yeniden adlandırma aracı, +Utilities,Faydalı şeyler, Type of document to rename.,Yeniden adlandırılacak Belge Türü., -File to Rename,Rename Dosya, -"Attach .csv file with two columns, one for the old name and one for the new name","Iki sütun, eski adı diğeri yeni isim biriyle .csv dosya eklemek", -Rename Log,Girişi yeniden adlandır, +File to Rename,Dosyayı Yeniden Adlandır, +"Attach .csv file with two columns, one for the old name and one for the new name","İki sütun, eski adı diğerinin yeni adının eklenmesi .csv dosyasının birleştirilmesi", +Rename Log,Girişi yeniden tanımlama, SMS Log,SMS Kayıtları, Sender Name,Gönderenin Adı, Sent On,Gönderim Zamanı, No of Requested SMS,İstenen SMS Sayısı, -Requested Numbers,Talep Sayılar, +Requested Numbers,Talep Sayıları, No of Sent SMS,Gönderilen SMS sayısı, Sent To,Gönderildiği Kişi, Absent Student Report,Öğrenci Devamsızlık Raporu, @@ -8450,10 +8450,10 @@ Assessment Plan Status,Değerlendirme Planı Durumu, Asset Depreciation Ledger,Varlık Değer Kaybı Defteri, Asset Depreciations and Balances,Varlık Değer Kayıpları ve Hesapları, 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,Toplu Öğe Bitiş Durumu, -Batch-Wise Balance History,Parti Geneli Bakiye Geçmişi, +Bank Clearance Summary,Banka Gümrükleme Özeti, +Bank Remittance,Banka Havalesi, +Batch Item Expiry Status,Batch Öğesi Süre Sonu Durumu, +Batch-Wise Balance History,Batch bazlı Bakiye Geçmişi, BOM Explorer,BOM Gezgini, BOM Search,Ürün Ağacı Arama, BOM Stock Calculated,BOM Hisse Senedi Hesaplanan, @@ -8462,239 +8462,239 @@ Campaign Efficiency,Kampanya Verimliliği, Cash Flow,Nakit Akışı, Completed Work Orders,Tamamlanmış İş Emri, To Produce,Üretilecek, -Produced,Üretilmiş, -Consolidated Financial Statement,Konsolide finansal tablolar, -Course wise Assessment Report,Akıllıca Hazırlanan Değerlendirme Raporu, +Produced,Üretilen, +Consolidated Financial Statement,Konsolide Finansal Tablolar, +Course wise Assessment Report,Akıllıca Alınan Hazır Değerlendirme Raporu, Customer Acquisition and Loyalty,Müşteri Edinme ve Sadakat, -Customer Credit Balance,Müşteri Kredi Bakiyesi, -Customer Ledger Summary,Müşteri Muhasebe Özeti, +Customer Credit Balance,Müşteri Alacak Bakiyesi, +Customer Ledger Summary,Müşteri Cari Defter Özeti, Customer-wise Item Price,Müşteri-bilge Öğe Fiyat, -Customers Without Any Sales Transactions,Satış İşlemleri Olmayan Müşteriler, +Customers Without Any Sales Transactions,Satış İşlemi olmayan Müşteriler, Daily Timesheet Summary,Günlük Zaman Çizelgesi Özeti, 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, +Delivered Items To Be Billed,Fatura Teslim Edilecek Ürünler, +Delivery Note Trends,İrsaliye Trendleri, Electronic Invoice Register,Elektronik Fatura Kaydı, -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, +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,Personelin Kalan İzni, +Employee Leave Balance Summary,Personel İzin Bakiyesi Özeti, +Employees working on a holiday,Tatilde Çalışan Personeller, Eway Bill,Eway Bill, Expiring Memberships,Süregelen Üyelikler, -Fichier des Ecritures Comptables [FEC],Fichier des Ecritures Comptables [FEC], +Fichier des Ecritures Comptables [FEC],Uyumlu Fichier des Ecritures [FEC], Final Assessment Grades,Final Değerlendirme Notları, -Fixed Asset Register,Sabit Varlık Kaydı, +Fixed Asset Register,Sabit Kıymet 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 Sales Register,GST Madde Numaralı Satış Kaydı, -GST Purchase Register,GST Satın Alma Kaydı, +GST Itemised Purchase Register,GST'ye göre Satın Alınan Kayıt, +GST Itemised Sales Register,GST Maddeli Satış Kaydı, +GST Purchase Register,GST Satınalma 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-bilge özeti, -Inactive Customers,Etkin olmayan müşteriler, -Inactive Sales Items,Etkin Olmayan Satış Öğeleri, +HSN-wise-summary of outward supplies,Dışa açık malzemeler HSN-bilge açıklaması, +Inactive Customers,Pasif Müşteriler, +Inactive Sales Items,Pasif Satış Ögeleri, IRS 1099,IRS 1099, 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,Öğe Fiyat Stok, +Item Balance (Simple),Ürün Bakiyesi (Basit), +Item Price Stock,Stok Ürün Fiyat Bilgisi, Item Prices,Ürün Fiyatları, 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, +Item-wise Price List Rate,Ürün bazında Fiyat Listesi Oranı, +Item-wise Purchase History,Ürün bazında Alış Geçmişi, +Item-wise Purchase Register,Ürün bazında Alış Kaydı, +Item-wise Sales History,Ürün bazında Satış Geçmişi, +Item-wise Sales Register,Ürün bazında Satış Kaydı, +Items To Be Requested,Talep Edilecek Ürünler, Reserved,Ayrılmış, -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, +Itemwise Recommended Reorder Level,Ürün için Önerilen Yeniden Sipariş Düzeyi, +Lead Details,Müşteri Adayı Detayı, +Lead Owner Efficiency,Aday Sahibi Verimliliği, Loan Repayment and Closure,Kredi Geri Ödeme ve Kapanışı, Loan Security Status,Kredi Güvenlik Durumu, -Lost Opportunity,Fırsat Kayıp, +Lost Opportunity,Fırsat Kaybedildi, Maintenance Schedules,Bakım Programları, -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, +Material Requests for which Supplier Quotations are not created,Tedarikçi Tekliflerinin oluşturulmadığı Malzeme Talepleri, +Monthly Attendance Sheet,Aylık Katılım Çetveli, 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ın Alma Talebi bekleyen PO Ürünleri, +Payment Period Based On Invoice Date,Fatura Tarihine göre Ödeme Dönemi, +Pending SO Items For Purchase Request,Satınalma Talebi bekleyen PO Ürünleri, Procurement Tracker,Tedarik Takibi, -Product Bundle Balance,Ürün Paketi Dengesi, -Production Analytics,Üretim Analytics, +Product Bundle Balance,Ürün Bundle Bakiyesi, +Production Analytics,Üretim Analitiği, 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 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, +Project wise Stock Tracking,Proje bazlı Stok Takibi, +Project wise Stock Tracking ,Proje bazlı Stok Takibi , +Prospects Engaged But Not Converted,İlgilenilen Potansiyel Müşteriler, +Purchase Analytics,Satınalma Analizi, +Purchase Invoice Trends,Satınalma Faturası Analizi, Qty to Receive,Alınacak Miktar, -Received Qty Amount,Alınan Miktar Miktarı, +Received Qty Amount,Alınan Miktar Tutarı, Billed Qty,Faturalı Miktar, -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, +Purchase Order Trends,Satınalma Sipariş Analizi, +Purchase Receipt Trends,Satınalma İrsaliyesi Analizi, +Purchase Register,Satınalma Kaydı, +Quotation Trends,Teklif Analizi, +Received Items To Be Billed,Faturalanacak Malzemeler, Qty to Order,Sipariş Miktarı, -Requested Items To Be Transferred,Transfer edilmesi istenen Ürünler, -Qty to Transfer,Transfer edilecek Miktar, -Salary Register,Maaş Kayıt, +Requested Items To Be Transferred,Aktarılması istenen Ürünler, +Qty to Transfer,Transfer Yapılacak Miktar, +Salary Register,Maaş Kaydı, Sales Analytics,Satış Analizleri, -Sales Invoice Trends,Satış Faturası Trendler, -Sales Order Trends,Satış Sipariş Trendler, +Sales Invoice Trends,Satış Faturası Analizi, +Sales Order Trends,Satış Siparişi Analizi, 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 Target Variance based on Item Group,Ürün Grubuna göre Satış Ortağı Hedef Varyansı, Sales Partner Transaction Summary,Satış Ortağı İşlem Özeti, Sales Partners Commission,Satış Ortakları Komisyonu, Invoiced Amount (Exclusive Tax),Faturalanan Tutar (Hariç Vergi), 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,Satış Grubu Bazında Ürün Grubu Bazında Hedef Varyansı, +Sales Person Commission Summary,Satış Personeli Komisyonu Özeti, +Sales Person Target Variance Based On Item Group,Ürün Grubuna göre Satış Elemanı Hedef Sapması, Sales Person-wise Transaction Summary,Satış Personeli bilgisi İşlem Özeti, -Sales Register,Satış Kayıt, +Sales Register,Satış Kaydı, 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, -Stock Ageing,Stok Yaşlanması, +Stock Ageing,Stok Yaşlandırma, 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 Wise Seyirci, -Student Fee Collection,Öğrenci Ücret Toplama, +Stock Projected Qty,Stok Öngörülen Miktarı, +Student and Guardian Contact Details,Öğrenci ve Veli İletişim Bilgileri, +Student Batch-Wise Attendance,Öğrenci Toplu Katılım, +Student Fee Collection,Öğrenci Harcı Tahsilatı, Student Monthly Attendance Sheet,Öğrenci Aylık Hazirun Cetveli, -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, +Subcontracted Item To Be Received,Alınacak Fason Ürünler, +Subcontracted Raw Materials To Be Transferred,Transfer edilecek Fason Hammaddeler, +Supplier Ledger Summary,Tedarikçi Cari Defter Özeti, Supplier-Wise Sales Analytics,Tedarikçi Satış Analizi, Support Hour Distribution,Destek Saat Dağılımı, -TDS Computation Summary,TDS Hesap Özeti, +TDS Computation Summary,TDS Özet Hesabı, TDS Payable Monthly,TDS Aylık Ücretli, -Territory Target Variance Based On Item Group,Öğe Grubuna Göre Bölge Hedefi Varyansı, +Territory Target Variance Based On Item Group,Ürün Grubuna göre Bölge Hedefi Varyansı, Territory-wise Sales,Bölge Satışları, Total Stock Summary,Toplam Stok Özeti, -Trial Balance,Mizan, -Trial Balance (Simple),Deneme Dengesi (Basit), -Trial Balance for Party,Parti için Deneme Dengesi, +Trial Balance,Geçici Mizan, +Trial Balance (Simple),Geçici Mizan (Basit), +Trial Balance for Party,Cari için Geçici Mizan, Unpaid Expense Claim,Ödenmemiş Gider Talebi, -Warehouse wise Item Balance Age and Value,Depo bilge Öğe Bakiye Yaş ve Değer, +Warehouse wise Item Balance Age and Value,Depo bazında Öğe Bakiye Yaşı ve Değeri, 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,Banka Gümrükleme, Bank Clearance Detail,Banka Gümrükleme Detayı, -Update Cost Center Name / Number,Maliyet Merkezi Adını / Numarasını Güncelleme, -Journal Entry Template,Dergi Giriş Şablonu, +Update Cost Center Name / Number,Maliyet Merkezi Adını / Sunucunu Güncelleme, +Journal Entry Template,Yevmiye Kaydı Şablonu, Template Title,Şablon Başlığı, -Journal Entry Type,Yevmiye Kayıt Türü, +Journal Entry Type,Yevmiye Kaydı Türü, Journal Entry Template Account,Yevmiye Kayıt Şablon Hesabı, Process Deferred Accounting,Ertelenmiş Muhasebe İşlemi, -Manual entry cannot be created! Disable automatic entry for deferred accounting in accounts settings and try again,Manuel giriş oluşturulamaz! Hesap ayarlarında ertelenmiş muhasebe için otomatik girişi devre dışı bırakın ve tekrar deneyin, -End date cannot be before start date,"Bitiş tarihi, başlangıç tarihinden önce olamaz", -Total Counts Targeted,Hedeflenen Toplam Sayımlar, -Total Counts Completed,Tamamlanan Toplam Sayımlar, -Counts Targeted: {0},Hedeflenen Sayımlar: {0}, -Payment Account is mandatory,Ödeme Hesabı zorunludur, -"If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission.","İşaretliyse, tutarın tamamı, herhangi bir beyan veya kanıt sunmadan gelir vergisi hesaplanmadan önce vergiye tabi gelirden düşülecektir.", +Manual entry cannot be created! Disable automatic entry for deferred accounting in accounts settings and try again,Manuel giriş oluşturulamaz! Hesap ayarlarında ertelenmiş muhasebe için otomatik giriş devre dışı bırakın ve tekrar deneyin, +End date cannot be before start date,"Bitiş tarihi, başlangıç bitişinden önce olamaz", +Total Counts Targeted,Hedeflenen Toplam Sayım, +Total Counts Completed,Tamamlanan Toplam Sayım, +Counts Targeted: {0},Hedeflenen Sayım: {0}, +Payment Account is mandatory,Ödeme Hesabı verileri, +"If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission.","İşaretliyse, tutarın tamamı, herhangi bir beyan veya kanıt sunmaktan gelir vergisi hesabından önce vergiye tabi gelirden düşülecektir.", Disbursement Details,Harcama Ayrıntıları, Material Request Warehouse,Malzeme Talebi Deposu, -Select warehouse for material requests,Malzeme talepleri için depo seçin, +Select warehouse for material requests,Malzeme aksesuarları 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.,Kalemler tablosunun her satırında 'Kaynak Depo' ayarlar., -Sets 'Target Warehouse' in each row of the items table.,Kalem tablosunun her satırında 'Hedef Depo' ayarlar., -Show Cancelled Entries,İptal Edilen Girişleri Göster, -Backdated Stock Entry,Geriye Dönük Stok Girişi, +Production Plan Material Request Warehouse,Üretim Planı Malzeme Talebi Deposu, +Sets 'Source Warehouse' in each row of the items table.,Ögeler tablosunun her satırında 'Kaynak Depo' ayarlar., +Sets 'Target Warehouse' in each row of the items table.,Ögeler tablosunun her satırında 'Hedef Depo' ayarlar., +Show Cancelled Entries,İptal Edilen Kayıtları Göster, +Backdated Stock Entry,Geriye dönük Stok Hareketi, 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, +{} Assets created for {},{} İçin Ortamlar {} Varlıklar, {0} Number {1} is already used in {2} {3},{0} {1} sayısı zaten {2} {3} içinde kullanılıyor, -Update Bank Clearance Dates,Banka Gümrükleme Tarihlerini Güncelleme, +Update Bank Clearance Dates,Banka Gümrük Tarihlerini Güncelleme, Healthcare Practitioner: ,Sağlık Hekimi:, -Lab Test Conducted: ,Yapılan Laboratuar Testi:, -Lab Test Event: ,Laboratuvar Test Etkinliği:, -Lab Test Result: ,Laboratuvar Test Sonucu:, -Clinical Procedure conducted: ,Uygulanan Klinik Prosedür:, +Lab Test Conducted: ,Yapılan Laboratuvar Testi: , +Lab Test Event: ,Laboratuvar Test Etkinliği: , +Lab Test Result: ,Laboratuvar Test Sonucu: , +Clinical Procedure conducted: ,Uygulanan Klinik hükümleri: , Therapy Session Charges: {0},Terapi Seansı Ücretleri: {0}, -Therapy: ,Terapi:, -Therapy Plan: ,Terapi Planı:, -Total Counts Targeted: ,Hedeflenen Toplam Sayımlar:, -Total Counts Completed: ,Tamamlanan Toplam Sayımlar:, +Therapy: ,Terapi: , +Therapy Plan: ,Terapi Planı: , +Total Counts Targeted: ,Hedeflenen Toplam Sayımlar: , +Total Counts Completed: ,Tamamlanan Toplam Sayımlar: , Andaman and Nicobar Islands,Andaman ve Nikobar Adaları, -Andhra Pradesh,Andhra Pradesh, +Andhra Pradesh,Andra Pradeş, Arunachal Pradesh,Arunaçal Pradeş, Assam,Assam, Bihar,Bihar, Chandigarh,Chandigarh, -Chhattisgarh,Chhattisgarh, +Chhattisgarh,Chattisgarh, Dadra and Nagar Haveli,Dadra ve Nagar Haveli, Daman and Diu,Daman ve Diu, Delhi,Delhi, Goa,Goa, -Gujarat,Gujarat, +Gujarat,Gucerat, Haryana,Haryana, -Himachal Pradesh,Himachal Pradesh, +Himachal Pradesh,Himaşal Pradeş, Jammu and Kashmir,Jammu ve Keşmir, Jharkhand,Carkhand, Karnataka,Karnataka, Kerala,Kerala, Lakshadweep Islands,Lakshadweep Adaları, -Madhya Pradesh,Madhya Pradesh, -Maharashtra,Maharashtra, +Madhya Pradesh,Madya Pradeş, +Maharashtra,Maharaştra, Manipur,Manipur, Meghalaya,Meghalaya, Mizoram,Mizoram, Nagaland,Nagaland, -Odisha,Odisha, +Odisha,Odişa, Other Territory,Diğer Bölge, -Pondicherry,Pondicherry, -Punjab,Pencap, +Pondicherry,Kiraz, +Punjab,Kalem Kapağı, Rajasthan,Rajasthan, Sikkim,Sikkim, Tamil Nadu,Tamil Nadu, Telangana,Telangana, -Tripura,Tripura, -Uttar Pradesh,Uttar Pradesh, +Tripura,Tripu, +Uttar Pradesh,Uttar Pradeş, Uttarakhand,Uttarkand, West Bengal,Batı Bengal, Is Mandatory,Zorunludur, -Published on,yayınlandı, -Service Received But Not Billed,Hizmet Alındı Ama Faturalandırılmadı, +Published on,Yayınlanma tarihi, +Service Received But Not Billed,Hizmet Alındı ama Faturalandırılmadı, Deferred Accounting Settings,Ertelenmiş Hesap Ayarları, -Book Deferred Entries Based On,Defterin Ertelenmiş Girişlerine Dayalı, +Book Deferred Entries Based On,Defter Ertelenmiş Kayıtları şuna göre, Days,Günler, Months,Aylar, Book Deferred Entries Via Journal Entry,Yevmiye Kaydıyla Ertelenen Girişleri Ayırtın, -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, +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şaretlenmezse Yevmiye Kayıtları Taslak durumuna kaydedilir ve manuel olarak gönderilmesi gerekir, +Enable Distributed Cost Center,Dağıtılmış Maliyet Merkezini Etkinleştirin, 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 Fee,İhtar Ücreti, Dunning Amount,İhtar Tutarı, Resolved,Çözüldü, Unresolved,Çözülmemiş, Printing Setting,Baskı Ayarı, -Body Text,Gövde metni, +Body Text,gövde metni, Closing Text,Kapanış Metni, -Resolve,çözmek, +Resolve,Çözüm, Dunning Letter Text,İhtar Mektubu Metni, Is Default Language,Varsayılan Dil, Letter or Email Body Text,Mektup veya E-posta Gövde Metni, @@ -8702,7 +8702,7 @@ Letter or Email Closing Text,Mektup veya E-posta Kapanış Metni, Body and Closing Text Help,Gövde ve Kapanış Metni Yardımı, Overdue Interval,Gecikme Aralığı, Dunning Letter,İhtarname, -"This section allows the user to set the Body and Closing text of the Dunning Letter for the Dunning Type based on language, which can be used in Print.","Bu bölüm, kullanıcının, Baskıda kullanılabilen dile bağlı olarak İhtar Türü için İhtar Mektubunun Ana ve Kapanış metnini ayarlamasına olanak tanır.", +"This section allows the user to set the Body and Closing text of the Dunning Letter for the Dunning Type based on language, which can be used in Print.","Bu bölüm, kullanıcılar, Baskıda yapılandırmaları dile bağlı olarak İhtar için İhtar Mektubunun Ana ve Kapanış görüntüsünün türünü düzenlemesine olanak tanır.", Reference Detail No,Referans Detay No, Custom Remarks,Özel Açıklamalar, Please select a Company first.,Lütfen önce bir Şirket seçin., @@ -8715,10 +8715,10 @@ Opening Amount,Açılış Tutarı, Closing Amount,Kapanış Tutarı, POS Closing Entry Taxes,POS Kapanış Giriş Vergileri, POS Invoice,POS Faturası, -ACC-PSINV-.YYYY.-,ACC-PSINV-.YYYY.-, +ACC-PSINV-.YYYY.-,ACC-PSTERS-.YYYY.-, Consolidated Sales Invoice,Konsolide Satış Faturası, -Return Against POS Invoice,POS Faturası Karşılığı İade, -Consolidated,Konsolide, +Return Against POS Invoice,POS Fatura Karşılığı İadesi, +Consolidated,konsolide, POS Invoice Item,POS Fatura Öğesi, POS Invoice Merge Log,POS Fatura Birleştirme Günlüğü, POS Invoices,POS Faturaları, @@ -8726,7 +8726,7 @@ Consolidated Credit Note,Konsolide Alacak Dekontu, 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ış Giriş Detayı, +POS Opening Entry Detail,POS Açılış Girişi Detayı, POS Payment Method,POS Ödeme Yöntemi, Payment Methods,Ödeme metodları, Process Statement Of Accounts,Hesapların İşlem Bildirimi, @@ -8741,14 +8741,14 @@ Enable Auto Email,Otomatik E-postayı Etkinleştir, Filter Duration (Months),Filtre Süresi (Ay), CC To,CC için, Help Text,Yardım Metni, -Emails Queued,Sıraya Alınan E-postalar, +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 Email,Birincil İletişim E-postası, PSOA Cost Center,PSOA Maliyet Merkezi, PSOA Project,PSOA Projesi, ACC-PINV-RET-.YYYY.-,ACC-PINV-RET-.YYYY.-, -Supplier GSTIN,Tedarikçi GSTIN, +Supplier GSTIN,tedarikçi GSTIN, Place of Supply,Tedarik Yeri, Select Billing Address,Fatura Adresini Seç, GST Details,GST Ayrıntıları, @@ -8757,31 +8757,31 @@ Registered Regular,Kayıtlı Normal, Registered Composition,Kayıtlı Beste, Unregistered,Kayıtlı değil, SEZ,SEZ, -Overseas,Yurtdışı, +Overseas,oryantal, UIN Holders,UIN Sahipleri, With Payment of Tax,Verginin Ödenmesi ile, Without Payment of Tax,Vergi Ödemesiz, -Invoice Copy,Fatura fotokopisi, +Invoice Copy,fatura tiyatrosu, Original for Recipient,Alıcı için Orijinal, -Duplicate for Transporter,Transporter için kopya, -Duplicate for Supplier,Tedarikçi için Kopya, +Duplicate for Transporter,Nakliyeci için Çoğalt, +Duplicate for Supplier,Tedarikçi için Çoğalt, Triplicate for Supplier,Tedarikçi için üç kopya, -Reverse Charge,Geri tepki, +Reverse Charge,Karşı Ödemeli, Y,Y, N,N, E-commerce GSTIN,E-ticaret GSTIN, Reason For Issuing document,Belge Düzenleme Nedeni, 01-Sales Return,01-Satış İadesi, -02-Post Sale Discount,02-Sonradan Satış İndirimi, +02-Post Sale Discount,02-Satış Sonrası İndirim, 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, -06-Finalization of Provisional assessment,06-Geçici değerlendirmenin sonuçlandırılması, +05-Change in POS,05-POS'ta Değişim, +06-Finalization of Provisional assessment,06-Geçici Dğerlemenin Sonuçlandırılması, 07-Others,07-Diğerleri, Eligibility For ITC,ITC için Uygunluk, -Input Service Distributor,Girdi Hizmeti Dağıtıcısı, -Import Of Service,Hizmet İthali, -Import Of Capital Goods,Sermaye Malları İthalatı, +Input Service Distributor,Girdi Hizmet Dağıtıcısı, +Import Of Service,Hizmet İthalatı, +Import Of Capital Goods,Yatırım Malları İthalatı, Ineligible,Uygun değil, All Other ITC,Tüm Diğer ITC, Availed ITC Integrated Tax,ITC Entegre Vergisinden yararlanıldı, @@ -8795,43 +8795,43 @@ E-Way Bill No.,E-Yol Fatura No., Is Consolidated,Konsolide Edildi, Billing Address GSTIN,Fatura Adresi GSTIN, Customer GSTIN,Müşteri GSTIN, -GST Transporter ID,GST Taşıyıcı Kimliği, -Distance (in km),Mesafe (km cinsinden), +GST Transporter ID,GST Nakliyeci ID, +Distance (in km),Mesafe (km), Road,Yol, Air,Hava, Rail,Demiryolu, -Ship,Gemi, +Ship,Denizyolu, GST Vehicle Type,GST Araç Türü, Over Dimensional Cargo (ODC),Boyutlu Kargo (ODC), Consumer,Tüketici, -Deemed Export,İhracat olarak kabul edilen, -Port Code,Port Kodu, +Deemed Export,İhracat olarak kabul edildi, +Port Code,Liman Kodu, Shipping Bill Number,Kargo Fatura Numarası, Shipping Bill Date,Sevkiyat Fatura Tarihi, Subscription End Date,Abonelik Bitiş Tarihi, Follow Calendar Months,Takvim Aylarını Takip Edin, -If this is checked subsequent new invoices will be created on calendar month and quarter start dates irrespective of current invoice start date,"Bu kontrol edilirse, mevcut fatura başlangıç tarihine bakılmaksızın takvim ayı ve üç aylık başlangıç tarihlerinde sonraki yeni faturalar oluşturulacaktır.", -Generate New Invoices Past Due Date,Son Tarihi Geçmiş Yeni Faturalar Oluşturun, +If this is checked subsequent new invoices will be created on calendar month and quarter start dates irrespective of current invoice start date,"Bu kontrol edilirse, faturanın mevcut başlangıç dönemlerinde geçen takvim ayı ve üç aylık başlangıç tarihlerinde bir sonraki yeni faturalar oluşturulacaktır.", +Generate New Invoices Past Due Date,Son Tarihi Geçmiş Yeni Faturalar Hesabı, New invoices will be generated as per schedule even if current invoices are unpaid or past due date,"Mevcut faturalar ödenmemiş veya vadesi geçmiş olsa bile, plana göre yeni faturalar oluşturulacaktır.", -Document Type ,döküman tipi, +Document Type ,Belge Türü, Subscription Price Based On,Abonelik Fiyatı, Fixed Rate,Sabit Oran, Based On Price List,Fiyat Listesine Göre, Monthly Rate,Aylık Oran, Cancel Subscription After Grace Period,Ek Süreden Sonra Aboneliği İptal Et, -Source State,Kaynak Devlet, -Is Inter State,Inter State mi, -Purchase Details,Satınalma detayları, +Source State,kaynak devlet, +Is Inter State,Devletlerarası mil, +Purchase Details,Satın alma 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ı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 'Evet' 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 'Satın Alma Siparişi Olmadan Satın Alma 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ı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 'Satın Alma Fişi Olmadan Satın Alma Faturası Oluşturmaya İzin Ver' onay kutusu etkinleştirilerek geçersiz kılınabilir.", +"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çebilirsin., +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ırsa, ERPNext, önce bir Satınalma Siparişi oluşturmadan bir Satınalma Faturası veya Fiş oluşturmanızı engelleyin. Bu koruyucu, 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ırsa, ERPNext, önce bir Satınalma Fişi oluşturmadan bir Satınalma Faturası oluşturmanızı engeller. Bu koruma, 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.", Quantity & Stock,Miktar ve Stok, Call Details,Çağrı Ayrıntıları, -Authorised By,Tarafından yetkilendirildi, -Signee (Company),Signee (Şirket), +Authorised By,tarafından yetkilendirildi, +Signee (Company),İmza Sahibi (Şirket), Signed By (Company),İmzalayan (Şirket), First Response Time,İlk Yanıt Süresi, Request For Quotation,Teklif Talebi, @@ -8840,76 +8840,76 @@ Access Token Secret,Erişim Belirteci Sırrı, Add to Topics,Konulara Ekle, ...Adding Article to Topics,... Konulara Makale Ekleme, Add Article to Topics,Konulara Makale Ekle, -This article is already added to the existing topics,Bu makale zaten mevcut konulara eklendi, +This article is already added to the existing topics,Bu makale zaten mevcut üzerine eklendi, Add to Programs,Programlara Ekle, -Programs,Programlar, +Programs,programlı, ...Adding Course to Programs,... Programlara Ders Ekleme, Add Course to Programs,Programlara Ders Ekle, This course is already added to the existing programs,Bu kurs zaten mevcut programlara eklendi, Learning Management System Settings,Öğrenme Yönetim Sistemi Ayarları, -Enable Learning Management System,Öğrenim Yönetim Sistemini Etkinleştir, +Enable Learning Management System,Öğrenim Yönetim Sistemini Etkinleştirin, Learning Management System Title,Öğrenme Yönetim Sistemi Başlığı, ...Adding Quiz to Topics,... Konulara Sınav Ekleniyor, Add Quiz to Topics,Konulara Sınav Ekle, -This quiz is already added to the existing topics,"Bu sınav, mevcut konulara zaten eklendi", +This quiz is already added to the existing topics,"Bu sınav, mevcut durumda zaten eklendi", Enable Admission Application,Kabul Başvurusunu Etkinleştir, EDU-ATT-.YYYY.-,EDU-ATT-.YYYY.-, -Marking attendance,Katılım işaretleniyor, +Marking attendance,katılım işaretleniyor, Add Guardians to Email Group,Velileri E-posta Grubuna Ekle, Attendance Based On,Şuna Göre Katılım, -Check this to mark the student as present in case the student is not attending the institute to participate or represent the institute in any event.\n\n,Öğrencinin herhangi bir durumda enstitüye katılmak veya enstitüyü temsil etmek üzere enstitüye katılmaması durumunda öğrenciyi mevcut olarak işaretlemek için bunu işaretleyin., +Check this to mark the student as present in case the student is not attending the institute to participate or represent the institute in any event.\n\n,Öğrencinin herhangi bir durumda bir enstitüye kaydolması veya enstitüyü ifade etmek üzere enstitüye katılmaması durumunda öğrencinin mevcut olarak üniversiteye girmesi için bunu yırtması., Add to Courses,Kurslara Ekle, ...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., -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", +"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 için varsayılan müşteriyi dikkate alır., +The accounts are set by the system automatically but do confirm these defaults,"Hesaplar sistemi 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, Fixed Error Log,Sabit Hata Günlüğü, -Company {0} already exists. Continuing will overwrite the Company and Chart of Accounts,"{0} şirketi zaten var. Devam etmek, Şirket ve Hesap Planının üzerine yazacaktır", +Company {0} already exists. Continuing will overwrite the Company and Chart of Accounts,"{0} şirketi zaten var. Devam etmek, Şirket ve Hesap Planının üzerine yazacaktır.", Meta Data,Meta Verileri, -Unresolve,Çöz, +Unresolve,Çünkü, Create Document,Belge Oluştur, Mark as unresolved,Çözümlenmemiş olarak işaretle, TaxJar Settings,TaxJar Ayarları, Sandbox Mode,Korumalı Alan Modu, Enable Tax Calculation,Vergi Hesaplamasını Etkinleştir, -Create TaxJar Transaction,TaxJar İşlemi Oluşturun, -Credentials,Kimlik bilgileri, +Create TaxJar Transaction,TaxJar İşlemi Oluşturma, +Credentials,kimlik bilgileri, Live API Key,Canlı API Anahtarı, Sandbox API Key,Sandbox API Anahtarı, Configuration,Yapılandırma, Tax Account Head,Vergi Hesap Başkanı, Shipping Account Head,Sevkiyat Hesap Başkanı, Practitioner Name,Uygulayıcı Adı, -Enter a name for the Clinical Procedure Template,Klinik Prosedür Şablonu için bir ad girin, -Set the Item Code which will be used for billing the Clinical Procedure.,Klinik Prosedürü faturalandırmak için kullanılacak Ürün Kodunu ayarlayın., -Select an Item Group for the Clinical Procedure Item.,Klinik Prosedür Öğesi için bir Öğe Grubu seçin., -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, +Enter a name for the Clinical Procedure Template,Klinik muhafaza Şablonu için bir ad girin, +Set the Item Code which will be used for billing the Clinical Procedure.,Klinik bölümleri faturalandırmak için kullanım Ürün Kodunu ayarlayın., +Select an Item Group for the Clinical Procedure Item.,Klinik göz Öğesi için bir Öğe Grubu seçin., +Clinical Procedure Rate,Klinik çevre Oranı, +Check this if the Clinical Procedure is billable and also set the rate.,Klinik bölümlerin faturalandırılabilir olup olmadığı kontrol edin ve maliyet de ayarı., +Check this if the Clinical Procedure utilises consumables. Click ,Klinik çevre sarf malzemelerini kullanansa bunu kontrol edin. Tıklayın, 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.", +"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 davanın faturalandırılması için otomatik olarak bir Öğe oluşturulacaktır. Daha sonra Hastalar için Klinik gözlemler oluştururken bu şablonu kullanabilirsiniz. Şablonlar sizi her fırsatta gereksiz verileri doldurmaktan kurtarır. Ayrıca Laboratuar Testleri, Terapi Oturumları vb. Gibi diğer yapılar için şablonlar oluşturabilirsiniz.", Descriptive Test Result,Tanımlayıcı Test Sonucu, Allow Blank,Boşluğa İzin Ver, Descriptive Test Template,Tanımlayıcı Test Şablonu, -"If you want to track Payroll and other HRMS operations for a Practitoner, create an Employee and link it here.","Bir Pratisyen için Bordro ve diğer İKYS işlemlerini takip etmek istiyorsanız, bir Çalışan oluşturun ve buraya bağlayın.", -Set the Practitioner Schedule you just created. This will be used while booking appointments.,"Yeni oluşturduğunuz Uygulayıcı Programını ayarlayın. Bu, randevu alırken kullanılacaktır.", +"If you want to track Payroll and other HRMS operations for a Practitoner, create an Employee and link it here.","Bir Pratisyen için Bordro ve diğer İKYS'leri takip etmek istiyor, bir çalışanı çalıştırıyor ve burada bulunuyor.", +Set the Practitioner Schedule you just created. This will be used while booking appointments.,"Yeni oluşturacağınız Uygulayıcı Program ayarını yapın. Bu, randevu almaktır.", Create a service item for Out Patient Consulting.,Out Patient Consulting için bir hizmet kalemi oluşturun., "If this Healthcare Practitioner works for the In-Patient Department, create a service item for Inpatient Visits.","Bu Sağlık Bakımı Uygulayıcısı Yatan Hasta Departmanı için çalışıyorsa, Yatan Hasta Ziyaretleri için bir hizmet öğesi oluşturun.", Set the Out Patient Consulting Charge for this Practitioner.,Bu Uygulayıcı için Hasta Danışma Ücretini Belirleyin., -"If this Healthcare Practitioner also works for the In-Patient Department, set the inpatient visit charge for this Practitioner.","Bu Sağlık Bakımı Uygulayıcısı aynı zamanda Yatan Hasta Bölümü için çalışıyorsa, bu Uygulayıcı için yatarak hasta ziyareti ücretini ayarlayın.", -"If checked, a customer will be created for every Patient. Patient Invoices will be created against this Customer. You can also select existing Customer while creating a Patient. This field is checked by default.","İşaretlenirse, her Hasta için bir müşteri oluşturulur. Bu Müşteriye karşı Hasta Faturaları oluşturulacaktır. Bir Hasta oluştururken mevcut Müşteriyi de seçebilirsiniz. Bu alan varsayılan olarak işaretlidir.", +"If this Healthcare Practitioner also works for the In-Patient Department, set the inpatient visit charge for this Practitioner.","Bu Sağlık Bakımı Uygulayıcısı aynı zamanda Yatan Hasta Bölümü için çalışıyorsa, bu Uygulayıcı için yatarak hasta ziyareti ücretini ayarlar.", +"If checked, a customer will be created for every Patient. Patient Invoices will be created against this Customer. You can also select existing Customer while creating a Patient. This field is checked by default.","İşaretlenirse, her Hasta için bir müşteri oluşturur. Bu Müşteriye karşı Hastaları Fatura oluşturacaktır. Bir Hasta oluştururken mevcut Müşteriyi de idare eder. Bu alan değişken olarak işaretlidir.", Collect Registration Fee,Kayıt Ücretini Toplayın, -"If your Healthcare facility bills registrations of Patients, you can check this and set the Registration Fee in the field below. Checking this will create new Patients with a Disabled status by default and will only be enabled after invoicing the Registration Fee.","Sağlık kuruluşunuz Hasta kayıtlarını faturalandırıyorsa, bunu kontrol edebilir ve aşağıdaki alanda Kayıt Ücretini belirleyebilirsiniz. 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.", -Checking this will automatically create a Sales Invoice whenever an appointment is booked for a Patient.,"Bunu işaretlemek, Hasta için randevu rezerve edildiğinde otomatik olarak bir Satış Faturası oluşturacaktır.", -Healthcare Service Items,Sağlık Hizmeti Öğeleri, -"You can create a service item for Inpatient Visit Charge and set it here. Similarly, you can set up other Healthcare Service Items for billing in this section. Click ","Yatan Hasta Ziyaret Ücreti için bir hizmet kalemi oluşturabilir ve buradan ayarlayabilirsiniz. Benzer şekilde, bu bölümde faturalama için diğer Sağlık Hizmeti Öğelerini ayarlayabilirsiniz. Tıklayın", -Set up default Accounts for the Healthcare Facility,Sağlık Tesisi için varsayılan Hesaplar oluşturun, -"If you wish to override default accounts settings and configure the Income and Receivable accounts for Healthcare, you can do so here.","Varsayılan hesap ayarlarını geçersiz kılmak ve Sağlık Hizmetleri için Gelir ve Alacak hesaplarını yapılandırmak isterseniz, bunu buradan yapabilirsiniz.", +"If your Healthcare facility bills registrations of Patients, you can check this and set the Registration Fee in the field below. Checking this will create new Patients with a Disabled status by default and will only be enabled after invoicing the Registration Fee.","Sağlık hizmetiz Hasta kayıtlarını faturalandırıyorsa, bunu kontrol edebilir ve aşağıdaki alanda Kayıt Ücretini belirleyebilirsiniz. Bunun işaretlenmesi, varsayılan olarak Devre Dışı maliyetlerine sahip yeni Hastalar oluşturacak ve yalnızca Kayıt Ücreti faturalandırma sonrasında etkinleştirilecektir.", +Checking this will automatically create a Sales Invoice whenever an appointment is booked for a Patient.,"Bunu yapılandırmak, Hasta için randevu rezerve kayıtları otomatik olarak bir Satış Faturası oluşturacaktır.", +Healthcare Service Items,Sağlık Hizmet Öğeleri, +"You can create a service item for Inpatient Visit Charge and set it here. Similarly, you can set up other Healthcare Service Items for billing in this section. Click ","Yatan Hasta Ziyaret Ücreti için bir hizmet kalemi oluşturduğunuzu ve buradan ayarlayabilirsiniz. Benzer şekilde, bu faturalama için diğer Sağlık Hizmeti Öğelerini ayarlayabilirsiniz. Tıklayın", +Set up default Accounts for the Healthcare Facility,Sağlık Tesisi için kapsamlı Hesaplar oluşturun, +"If you wish to override default accounts settings and configure the Income and Receivable accounts for Healthcare, you can do so here.","Varsayılan hesabı kullanmak geçersiz kılmak ve Sağlık Hizmetleri için Gelir ve Alacak hesaplarını yönetmek isterseniz, bunu buradan yapabilirsiniz.", Out Patient SMS alerts,Out Patient SMS uyarıları, -"If you want to send SMS alert on Patient Registration, you can enable this option. Similary, you can set up Out Patient SMS alerts for other functionalities in this section. Click ","Hasta Kaydında SMS uyarısı göndermek istiyorsanız, bu seçeneği etkinleştirebilirsiniz. Benzer şekilde, bu bölümdeki diğer işlevler için Hasta Dışarıda SMS uyarıları kurabilirsiniz. Tıklayın", +"If you want to send SMS alert on Patient Registration, you can enable this option. Similary, you can set up Out Patient SMS alerts for other functionalities in this section. Click ","Hasta Kaydında SMS uyarısı olmasını istiyorsanız, bu seçeneği etkinleştirebilirsiniz. Benzer şekilde, bu bölümdeki diğer görme için Hasta Dışında SMS uyarıları kurabilirsiniz. Tıklayın", Admission Order Details,Kabul Sipariş Ayrıntıları, Admission Ordered For,Kabul İçin Sipariş Verildi, Expected Length of Stay,Beklenen Kalma Süresi, @@ -8919,56 +8919,56 @@ Healthcare Practitioner (Secondary),Sağlık Hekimi (İkincil), Admission Instruction,Kabul Talimatı, Chief Complaint,Baş Şikayet, Medications,İlaçlar, -Investigations,İncelemeler, -Discharge Detials,Deşarj Detials, +Investigations,incelemeler, +Discharge Detials,Deşarj Detayları, Discharge Ordered Date,Tahliye Sipariş Tarihi, Discharge Instructions,Deşarj Talimatları, Follow Up Date,Takip Tarihi, Discharge Notes,Tahliye Notları, -Processing Inpatient Discharge,Yatan Hastanın Taburcu Edilmesi, +Processing Inpatient Discharge,Yatan hasta Taburcu Edilmesi, Processing Patient Admission,Hasta Kabulünün İşlenmesi, -Check-in time cannot be greater than the current time,Giriş saati mevcut saatten fazla olamaz, +Check-in time cannot be greater than the current time,Giriş saati mevcut durumdan fazla olamaz, Process Transfer,İşlem Aktarımı, HLC-LAB-.YYYY.-,HLC-LAB-.YYYY.-, Expected Result Date,Beklenen Sonuç Tarihi, Expected Result Time,Beklenen Sonuç Süresi, -Printed on,Baskı tarihi, -Requesting Practitioner,Uygulayıcı İsteniyor, -Requesting Department,Talep Eden Departman, +Printed on,baskı tarihi, +Requesting Practitioner,Uygulayıcı İstiyor, +Requesting Department,Talep Eden Departmanı, Employee (Lab Technician),Çalışan (Laboratuvar Teknisyeni), Lab Technician Name,Laboratuvar Teknisyeni Adı, Lab Technician Designation,Laboratuvar Teknisyeni Tanımı, Compound Test Result,Bileşik Test Sonucu, Organism Test Result,Organizma Testi Sonucu, -Sensitivity Test Result,Duyarlılık Testi Sonucu, +Sensitivity Test Result,Duyarlık Testi Sonucu, Worksheet Print,Çalışma Sayfası Yazdır, Worksheet Instructions,Çalışma Sayfası Talimatları, Result Legend Print,Sonuç Gösterge Baskısı, Print Position,Baskı Pozisyonu, -Bottom,Alt, +Bottom,Alternatif, Top,Üst, Both,Her ikisi de, -Result Legend,Sonuç Açıklamaları, -Lab Tests,Laboratuvar testleri, +Result Legend,Açıklama Sonuçları, +Lab Tests,laboratuvar testi, No Lab Tests found for the Patient {0},Hasta için Laboratuar Testi bulunamadı {0}, -"Did not send SMS, missing patient mobile number or message content.","SMS, eksik hasta cep telefonu numarası veya mesaj içeriği gönderilmedi.", -No Lab Tests created,Laboratuvar Testi oluşturulmadı, +"Did not send SMS, missing patient mobile number or message content.","SMS, eksik hasta cep telefonu numarası veya mesaj içeriği gönderilirdi.", +No Lab Tests created,Laboratuvar testi oluşturmadı, Creating Lab Tests...,Laboratuvar Testleri Oluşturma ..., Lab Test Group Template,Laboratuvar Test Grubu Şablonu, Add New Line,Yeni Satır Ekle, Secondary UOM,İkincil UOM, -"Single: Results which require only a single input.\n
\nCompound: Results which require multiple event inputs.\n
\nDescriptive: Tests which have multiple result components with manual result entry.\n
\nGrouped: Test templates which are a group of other test templates.\n
\nNo Result: Tests with no results, can be ordered and billed but no Lab Test will be created. e.g.. Sub Tests for Grouped results",Tekli : Yalnızca tek bir giriş gerektiren sonuçlar.
Bileşik : Birden çok olay girişi gerektiren sonuçlar.
Tanımlayıcı : Manuel sonuç girişi olan birden fazla sonuç bileşeni olan testler.
Gruplanmış : Diğer test şablonlarından oluşan test şablonları.
Sonuç Yok : Sonuçsuz testler sipariş edilebilir ve faturalandırılabilir ancak Laboratuar Testi oluşturulmayacaktır. Örneğin. Gruplandırılmış sonuçlar için Alt Testler, +"Single: Results which require only a single input.\n
\nCompound: Results which require multiple event inputs.\n
\nDescriptive: Tests which have multiple result components with manual result entry.\n
\nGrouped: Test templates which are a group of other test templates.\n
\nNo Result: Tests with no results, can be ordered and billed but no Lab Test will be created. e.g.. Sub Tests for Grouped results",Tekli : Yalnızca tek bir giriş gereksinimleri sonuçları.
Bileşik : Birden çok olay girişi gereksinimleri sonuçları.
Tanımlayıcı : Manuel sonuç girişi olan birden fazla sonuç sonucu olan testleri.
Gruplanmış : Diğer test şablonlarından oluşan test şablonları.
Sonuç Yok : Sonuçsuz bölümleri sipariş edilebilir ve faturalandırılabilir ancak Laboratuar Testi oluşturulmayacaktır. . Örneğin. Gruplandırılmış sonuçlar için Alt Testler, "If unchecked, the item will not be available in Sales Invoices for billing but can be used in group test creation. ","İşaretlenmemişse, öğe faturalama için Satış Faturalarında bulunmayacaktır ancak grup testi oluşturmada kullanılabilir.", Description ,Açıklama, -Descriptive Test,Tanımlayıcı Test, +Descriptive Test,Tanımlayıcı Testi, Group Tests,Grup Testleri, -Instructions to be printed on the worksheet,Çalışma sayfasına yazdırılacak talimatlar, -"Information to help easily interpret the test report, will be printed as part of the Lab Test result.",Test raporunun kolayca yorumlanmasına yardımcı olacak bilgiler Laboratuar Testi sonucunun bir parçası olarak yazdırılacaktır., +Instructions to be printed on the worksheet,Çalışma dosyası yazdırılacak belgeler, +"Information to help easily interpret the test report, will be printed as part of the Lab Test result.",Test raporunun kolayca yorumlanmasına yardımcı olacak bilgiler Laboratuar Testi sonuçlarının bir parçası olarak yazdırılacaktır., Normal Test Result,Normal Test Sonucu, Secondary UOM Result,İkincil UOM Sonucu, -Italic,İtalik, +Italic,italik, Underline,Altını çizmek, -Organism,Organizma, +Organism,organizma, Organism Test Item,Organizma Test Öğesi, Colony Population,Koloni Popülasyonu, Colony UOM,Koloni UOM, @@ -8978,14 +8978,14 @@ Alcohol Consumption (Past),Alkol Tüketimi (Geçmiş), Alcohol Consumption (Present),Alkol Tüketimi (Mevcut), Billing Item,Fatura Öğesi, Medical Codes,Tıbbi Kodlar, -Clinical Procedures,Klinik Prosedürler, +Clinical Procedures,Klinik çevreler, Order Admission,Sipariş Kabulü, Scheduling Patient Admission,Hasta Kabulünün Planlanması, Order Discharge,Sipariş Tahliyesi, Sample Details,Örnek Ayrıntılar, Collected On,Toplanma Tarihi, No. of prints,Baskı sayısı, -Number of prints required for labelling the samples,Örnekleri etiketlemek için gereken baskı sayısı, +Number of prints required for labelling the samples,Örnekleri çerçevelemek için gereken sayı baskısı, HLC-VTS-.YYYY.-,HLC-VTS-.YYYY.-, In Time,Zamanında, Out Time,Çıkış Süresi, @@ -8996,47 +8996,47 @@ Shift Request Approver,Vardiya İsteği Onaylayıcısı, PAN Number,PAN Numarası, Provident Fund Account,İhtiyat Fonu Hesabı, MICR Code,MICR Kodu, -Repay unclaimed amount from salary,Talep edilmeyen tutarı maaştan geri ödeyin, +Repay unclaimed amount from salary,Talep edilmeyen maaştan geri ödeyin, Deduction from salary,Maaştan kesinti, -Expired Leaves,Süresi Dolan Yapraklar, +Expired Leaves,Süresi biten İzinler, 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", -If this is not checked the loan by default will be considered as a Demand Loan,"Bu kontrol edilmezse, varsayılan olarak kredi bir Talep Kredisi olarak kabul edilecektir.", -This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,"Bu hesap, borçludan kredi geri ödemeleri rezervasyonu yapmak ve ayrıca borçluya kredi vermek için kullanılır.", +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 teminat olarak 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ğer Oranı, kredi borçlarının taahhüdünde bulunulan menkul değerin harcanması gerektiğini ifade eder. Herhangi bir kredi için belirtilen değerin altına düşerse bir kredi güvenlik açığı tetiklenir", +If this is not checked the loan by default will be considered as a Demand Loan,"Bu kontrol reddedilirse, varsayılan olarak kredi bir Talep Kredisi olarak kabul edilecektir.", +This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,"Bu hesap, borçludan kredi geri ödemelerini yapmak ve ayrıca borçluya kredi vermek için kullanılır.", This account is capital account which is used to allocate capital for loan disbursal account ,"Bu hesap, kredi ödeme hesabına sermaye tahsis etmek için kullanılan sermaye hesabıdır.", -This account will be used for booking loan interest accruals,"Bu hesap, kredi faiz tahakkukları için kullanılacaktır.", -This account will be used for booking penalties levied due to delayed repayments,"Bu hesap, geciken geri ödemeler nedeniyle alınan rezervasyon cezaları için kullanılacaktır.", -Variant BOM,Varyant ürün reçetesi, +This account will be used for booking loan interest accruals,"Bu hesap, kredi faiz tahakkukları için kullanılmasıdır.", +This account will be used for booking penalties levied due to delayed repayments,"Bu hesap, geciken geri ödemeler nedeniyle alma rezervasyon cezaları için kullanımdır.", +Variant BOM,Varyant ürün Reçetesi, Template Item,Şablon Öğesi, Select template item,Şablon öğesini seçin, -Select variant item code for the template item {0},{0} şablon öğesi için varyant öğe kodunu seçin, -Downtime Entry,Kapalı Kalma Süresi Girişi, +Select variant item code for the template item {0},{0} kalıp öğeleri için düşünme öğesini seçin, +Downtime Entry,Kesinti/Arıza Süresi Girişi, DT-,DT-, Workstation / Machine,İş İstasyonu / Makine, Operator,Şebeke, -In Mins,Dakika içinde, +In Mins,Dakika, Downtime Reason,Kesinti Nedeni, Stop Reason,Nedeni Durdur, Excessive machine set up time,Aşırı makine kurulum süresi, Unplanned machine maintenance,Planlanmamış makine bakımı, -On-machine press checks,Makine üzerinde baskı kontrolleri, -Machine operator errors,Makine operatörü hataları, +On-machine press checks,Makine üzerinde press kontrolü, +Machine operator errors,Makine operator hatası, Machine malfunction,Makine arızası, -Electricity down,Elektrik kesildi, -Operation Row Number,İşlem Satır Numarası, -Operation {0} added multiple times in the work order {1},"İşlem {0}, iş emrine birden çok kez eklendi {1}", +Electricity down,Elektrik kesintisi, +Operation Row Number,Operasyon Satır Numarası, +Operation {0} added multiple times in the work order {1},"Operasyon {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.

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.

Ü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.

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 Hareketi, ters yıkama olarak bilinir. Mamul malları üretmek için tüketilen hammaddeler, ters yıkama olarak bilinir.

Üretim Girişi yaratılırken, hammadde kalemleri, üretim defterinin ürün reçetelerine göre ters yıkanır. Hammadde kalemlerinin bunun yerine o İş Emrine karşı Yapılan Malzeme Transferi girişine göre yıkanmış tersini 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ın alma 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ınalma oranları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ın alma için malzeme talebi oluşturacaktır.", -Lead Time,Teslim süresi, +"System will pickup the materials from the selected warehouses. If not specified, system will create material request for purchase.","Sistem, malzemeler seçilen depolardan gelir. Belirtilmezse, sistem satınalma için malzeme talebi oluşturulacaktır.", +Lead Time,Teslim Süresi, PAN Details,PAN Detayları, Create Customer,Müşteri Yaratın, Invoicing,Faturalama, @@ -9047,15 +9047,15 @@ Membership Print Format,Üyelik Baskı Formatı, Invoice Print Format,Fatura Yazdırma Formatı, Revoke ,İptal et<Key></Key>, 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, +ERPNext Docs,ERPNext Dokumanlar, +Regenerate Webhook Secret,Webhook Sırrını Yeniden Oluşturma, Generate Webhook Secret,Webhook Sırrı Oluştur, Copy Webhook URL,Webhook URL'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'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, @@ -9063,37 +9063,37 @@ House Rent Payment Amount,Konut Kira Ödeme Tutarı, Rented From Date,Kiralandığı Tarih, Rented To Date,Bugüne Kadar Kiralandı, Monthly Eligible Amount,Aylık Uygun Tutar, -Total Eligible HRA Exemption,Toplam Uygun HRA Muafiyeti, +Total Eligible HRA Exemption,Toplam Uygun İHD Muafiyeti, Validating Employee Attendance...,Çalışan Katılımının Doğrulanması ..., Submitting Salary Slips and creating Journal Entry...,Maaş Fişleri Gönderme ve Yevmiye Kaydı Oluşturma ..., Calculate Payroll Working Days Based On,Bordro Çalışma Günlerini Şuna Göre Hesaplayın, -Consider Unmarked Attendance As,İşaretlenmemiş Katılımı Olarak Düşünün, +Consider Unmarked Attendance As,İşaretlenmemiş Katılımı Düşünün Olarak, Fraction of Daily Salary for Half Day,Yarım Gün Günlük Maaş Kesri, Component Type,Bileşen Tipi, Provident Fund,ihtiyat fonu, Additional Provident Fund,Ek İhtiyat Fonu, Provident Fund Loan,İhtiyat Fonu Kredisi, Professional Tax,Mesleki vergi, -Is Income Tax Component,Gelir Vergisi Bileşeni, +Is Income Tax Component,Gelir Vergisi Bileşenleri, Component properties and references ,Bileşen özellikleri ve referansları, Additional Salary ,Ek Maaş, Unmarked days,İşaretlenmemiş günler, Absent Days,Devamsızlık Günleri, -Conditions and Formula variable and example,Koşullar ve Formül değişkeni ve örnek, +Conditions and Formula variable and example,Koşullar ve Formül değişkeni ve örneği, 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ına göre ayarlanır. Müşterilerin bir tarafından kullanılmasını istemek", 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 Teslimat Notu 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 Teslimat Notu oluşturmadan Satış Faturası oluşturmanızı engeller. Bu yapılandırma, Müşteri ana sayfasındaki 'Teslimat Notu Olmadan Satış Faturası Oluşturmaya İzin Ver' 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, +"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 bir Satış Siparişi oluşturmadan bir Satış Faturası veya İrsaliye oluşturmanızı engeller. Bu yapılandırma, Müşteri ana sayfasında 'Satış Siparişi Olmadan Satış Faturası Oluşturulmasına İ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 İrsaliye oluşturmadan Satış Faturası oluşturmanızı engeller. Bu yapılandırma, belirli bir Müşteri için Müşteri ana sayfasındaki 'İrsaliye Olmadan Satış Faturası Oluşturulmasına İzin Ver' onay kutusu etkinleştirilerek geçersiz kılınabilir.", +Default Warehouse for Sales Return,Satış beyannamesi için varsayılan Depo, +Default In Transit Warehouse,Transit Depo Temerrüt, +Enable Perpetual Inventory For Non Stock Items,Stok Dışı Kalemler İçin Sürekli Envanteri Etkinleştirin, HRA Settings,HRA Ayarları, -Basic Component,Temel Bileşen, -HRA Component,HRA Bileşeni, -Arrear Component,Ödenmemiş Bileşen, -Please enter the company name to confirm,Lütfen onaylamak için şirket adını girin, +Basic Component,Temel Bileşenler, +HRA Component,HRA Bileşenleri, +Arrear Component,Ödenmemiş Bileşenler, +Please enter the company name to confirm,Lütfen onaylamak için şirket adını giriniz, Quotation Lost Reason Detail,Teklif Kayıp Nedeni Ayrıntıları, Enable Variants,Çeşitleri Etkinleştir, Save Quotations as Draft,Teklifleri Taslak Olarak Kaydet, @@ -9101,124 +9101,124 @@ MAT-DN-RET-.YYYY.-,MAT-DN-RET-.YYYY.-, Please Select a Customer,Lütfen Müşteri Seçiniz, Against Delivery Note Item,Sevk irsaliyesi kalemine karşı, Is Non GST ,GST Değildir, -Image Description,Görüntü açıklaması, -Transfer Status,Transfer durumu, +Image Description,Görüntü yayını, +Transfer Status,Aktarım durumu, MAT-PR-RET-.YYYY.-,MAT-PR-RET-.YYYY.-, -Track this Purchase Receipt against any Project,Herhangi bir Projeye karşı bu Satın Alma Makbuzunu takip edin, +Track this Purchase Receipt against any Project,Herhangi bir Projeye karşı bu Satınalma Makbuzunu takip edin, Please Select a Supplier,Lütfen Bir Tedarikçi Seçin, -Add to Transit,Transite Ekle, +Add to Transit,Transit 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, Öğ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'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.", +"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 belirlenir. Öğelerin bir tarafından kullanılmasını istemek", +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 Depoya 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 verecek. Bu seçeneği kullanma, kullanma araçlarına bağlıdır. Bu seçenek işaretlendiğinde, sistem negatif stoka neden olan bir işlemi engellemeden önce devreye alını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ı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", + 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 bulmak için her alt tablonun üzerinde 'Barkod Tara' yaklaşmak., +"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 çıkarma esas tesisi 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ınmalıdı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, +Service Level Agreement Status,Hizmet Seviyesi Sözleşme Şartları, +On Hold Since,O zaman beri beklemede, Total Hold Time,Toplam Tutma Süresi, Response Details,Yanıt Ayrıntıları, 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, +SLA is on hold since {0},"SLA, {0} yolcularından beri beklemede", +Pause SLA On Status,Durum Açıkken SLA'yı Duraklat, +Pause SLA On,SLA'yı Duraklat, Greetings Section,Selamlar Bölümü, Greeting Title,Tebrik Başlığı, Greeting Subtitle,Karşılama Altyazısı, -Youtube ID,Youtube kimliği, +Youtube ID,Youtube kesin, Youtube Statistics,Youtube İstatistikleri, Views,Görüntüleme, Dislikes,Beğenmeme sayısı, -Video Settings,Video ayarları, -Enable YouTube Tracking,YouTube İzlemeyi Etkinleştirin, +Video Settings,Video Ayarları, +Enable YouTube Tracking,YouTube izlemeyi Etkinleştirin, 30 mins,30 dakika, -1 hr,1 sa., -6 hrs,6 sa., -Patient Progress,Hasta İlerlemesi, +1 hr,1 saat, +6 hrs,6 saat, +Patient Progress,Hasta idaresi, Targetted,Hedeflenen, Score Obtained,Elde Edilen Puan, -Sessions,Oturumlar, -Average Score,Not ortalaması, +Sessions,oturumlar, +Average Score,ortalama değil, Select Assessment Template,Değerlendirme Şablonunu Seçin, out of ,dışında, -Select Assessment Parameter,Değerlendirme Parametresini Seçin, +Select Assessment Parameter,Değerlendirme Parametrelerini Seçin, Gender: ,Cinsiyet:, -Contact: ,İletişim:, +Contact: ,iletişim:, Total Therapy Sessions: ,Toplam Terapi Seansları:, Monthly Therapy Sessions: ,Aylık Terapi Seansları:, Patient Profile,Hasta Profili, -Point Of Sale,Satış noktası, +Point Of Sale,Satış Noktası, Email sent successfully.,E-posta başarıyla gönderildi., -Search by invoice id or customer name,Fatura kimliği veya müşteri adına göre arayın, +Search by invoice id or customer name,Fatura adresini veya müşteri adına göre arayın!, Invoice Status,Fatura Durumu, -Filter by invoice status,Fatura durumuna göre filtrele, -Select item group,Öğe grubunu seçin, +Filter by invoice status,Faturalandırma hızına göre filtrele, +Select item group,Öğe grubu seçin, 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, +Enter discount percentage.,İndirimini yüzde girin., +Discount cannot be greater than 100%,İndirim %100'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., -Item will be removed since no serial / batch no selected.,Seri / parti seçilmediğinden ürün kaldırılacak., +Item will be removed since no serial / batch no selected.,Seri / parça içeriğinden dolayı ürün kaldırılacaktır., Discount (%),İndirim (%), -You cannot submit the order without payment.,Siparişi ödeme yapmadan gönderemezsiniz., +You cannot submit the order without payment.,Siparişi ödemeden gönderemezsiniz., You cannot submit empty order.,Boş sipariş veremezsiniz., To Be Paid,Ödenecek, -Create POS Opening Entry,POS Açılış Girişi Oluşturun, +Create POS Opening Entry,POS Açma Girişi Oluşturma, Please add Mode of payments and opening balance details.,Lütfen Ödeme Modu ve açılış bakiyesi ayrıntılarını ekleyin., Toggle Recent Orders,Son Siparişleri Değiştir, Save as Draft,Taslak olarak kaydet, -You must add atleast one item to save it as draft.,Taslak olarak kaydetmek için en az bir öğe eklemelisiniz., -There was an error saving the document.,Belgeyi kaydederken bir hata oluştu., +You must add atleast one item to save it as draft.,Taslak olarak beklemek için en az bir öğe eklemelisiniz., +There was an error saving the document.,Belgeyi geçirirken bir hata oluştu., You must select a customer before adding an item.,Bir öğe eklemeden önce bir müşteri seçmelisiniz., 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 İşlemleri Süresi, -BOM ID,BOM ID, +BOM Operations Time,BOM Operasyon Süresi, +BOM ID,Malzeme Listesi Kimliği, BOM Item Code,BOM Ürün Kodu, -Time (In Mins),Zaman (Dakika Olarak), +Time (In Mins),Süre (dakika), 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ı, +Total Delivered Amount,Toplam Teslimat Tutarı, Downtime Analysis,Kesinti Analizi, -Machine,Makine, +Machine,Makina, 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", +"""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ü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 Müdahale Süresi, +First Response Time for Opportunity,Fırsat için İlk Yanıt Süresi, Depreciatied Amount,Amortisman Tutarı, -Period Based On,Dayalı Dönem, -Date Based On,Dayalı Tarih, +Period Based On,Tarihe göre Dönem, +Date Based On,Tarihe göre, {0} and {1} are mandatory,{0} ve {1} zorunludur, -Consider Accounting Dimensions,Muhasebe Boyutlarını Düşünün, +Consider Accounting Dimensions,Muhasebe Boyutlarını Dikkate al, Income Tax Deductions,Gelir Vergisi Kesintileri, -Income Tax Component,Gelir Vergisi Bileşeni, +Income Tax Component,Gelir Vergisi Bileşenleri, 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ı, Job Card Summary,İş Kartı Özeti, -Id,İD, +Id,ID, 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 / Kurşun Adı, +From Posting Date,Baş. Muhasebe Tarihi, +To Posting Date,Bitiş Muhasebe Tarihi, +No records found,Kayıt bulunamadı, +Customer/Lead Name,Müşteri / Aday Adı, Unmarked Days,İşaretlenmemiş Günler, Jan,Oca, Feb,Şubat, Mar,Mar, -Apr,Nis, -Aug,Ağu, -Sep,Eylül, +Apr,Niş, +Aug,ağustos, +Sep,eylül, Oct,Ekim, Nov,Kasım, Dec,Aralık, @@ -9228,31 +9228,31 @@ Order Qty,Sipariş Miktarı, Raw Material Code,Hammadde Kodu, Raw Material Name,Hammadde Adı, Allotted Qty,Ayrılan Miktar, -Expected Arrival Date,Beklenilen varış tarihi, +Expected Arrival Date,Beklenilen tarihi, Arrival Quantity,Varış Miktarı, Raw Material Warehouse,Hammadde Deposu, -Order By,Tarafından sipariş, -Include Sub-assembly Raw Materials,Alt Montaj Hammaddelerini Dahil Et, +Order By,tarafından sipariş, +Include Sub-assembly Raw Materials,Alt Montaj ilk madde ve malzemeleri Dahil Et, Professional Tax Deductions,Profesyonel Vergi İndirimleri, -Program wise Fee Collection,Program bazlı Ücret Toplama, +Program wise Fee Collection,Program bazında Ücret Toplama, Fees Collected,Toplanan Ücretler, -Project Summary,Proje özeti, +Project Summary,Proje Açıklaması, Total Tasks,Toplam Görev, Tasks Completed,Tamamlanan Görevler, Tasks Overdue,Gecikmiş Görevler, Completion,Tamamlanma, -Provident Fund Deductions,İhtiyat Fonu Kesintileri, +Provident Fund Deductions,Yardım Sandığı Kesintileri, Purchase Order Analysis,Satınalma Siparişi Analizi, 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ın Alma Siparişine Göre Gruplama, - Purchase Value,Alım değeri, -Total Received Amount,Toplam Alınan Tutar, +Group by Purchase Order,Satınalma Siparişine Göre Gruplama, + Purchase Value,Alım Değeri, +Total Received Amount,Toplam Slınan Tutar, Quality Inspection Summary,Kalite Muayene Özeti, Quoted Amount,Teklif Edilen Tutar, Lead Time (Days),Teslim Süresi (Gün), -Include Expired,Süresi Dolan, +Include Expired,Süresi dolanları dahil et, Recruitment Analytics,İşe Alım Analitiği, Applicant name,Başvuranın ismi, Job Offer status,İş Teklifi durumu, @@ -9262,162 +9262,162 @@ Salary Payments Based On Payment Mode,Ödeme Moduna Göre Maaş Ödemeleri, Salary Payments via ECS,ECS ile Maaş Ödemeleri, Account No,Hesap No, IFSC,IFSC, -MICR,MICR, +MICR,MİKR, Sales Order Analysis,Satış Siparişi Analizi, 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ı - Seri Sayısız, -Serial No Count,Seri Sayısız, +Stock Qty vs Serial No Count,Stok Adedi ve Seri No Sayısı Karşılaştırması, +Serial No Count,Seri No Sayısı, Work Order Summary,İş Emri Özeti, -Produce Qty,Adet üret, -Lead Time (in mins),Teslim Süresi (dakika cinsinden), +Produce Qty,adet üretim, +Lead Time (in mins),Teslim Süresi (dakika ölçüsü), Charts Based On,Dayalı Grafikler, YouTube Interactions,YouTube Etkileşimleri, Published Date,yayınlanma tarihi, Barnch,Barnch, 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, +Opportunity {0} created,{0} birlikteliği, +Kindly select the company first,Lütfen önce şirketini seçin, Please enter From Date and To Date to generate JSON,JSON oluşturmak için lütfen Başlangıç Tarihi ve Bitiş Tarihi girin, -PF Account,KM Hesabı, +PF Account,PF Hesabı, PF Amount,PF Miktarı, Additional PF,Ek PF, PF Loan,KM Kredisi, Download DATEV File,DATEV Dosyasını İndir, -Numero has not set in the XML file,Numero XML dosyasında ayarlanmadı, -Inward Supplies(liable to reverse charge),İç Malzemeler (ters ücret ödemekle yükümlüdür), -This is based on the course schedules of this Instructor,"Bu, bu Eğitmenin kurs programlarına dayanmaktadır", +Numero has not set in the XML file,Numero XML kurulumunda ayarlanmadı, +Inward Supplies(liable to reverse charge),İç Malzemeler (ters ücretle kiralama), +This is based on the course schedules of this Instructor,"Bu, bu Eğitmenin kurs programlarına göre", Course and Assessment,Kurs ve Değerlendirme, Course {0} has been added to all the selected programs successfully.,"{0} kursu, seçilen tüm programlara başarıyla eklendi.", Programs updated,Programlar güncellendi, -Program and Course,Program ve Kurs, -{0} or {1} is mandatory,{0} veya {1} zorunludur, +Program and Course,Program ve Kurslar, +{0} or {1} is mandatory,{0} veya {1} yaptırımları, Mandatory Fields,Zorunlu alanlar, Student {0}: {1} does not belong to Student Group {2},"Öğrenci {0}: {1}, {2} Öğrenci Grubuna ait değil", Student Attendance record {0} already exists against the Student {1},Öğrenci Katılım kaydı {0} Öğrenci aleyhine zaten mevcut {1}, Duplicate Entry,Yinelenen Giriş, -Course and Fee,Kurs ve Ücret, +Course and Fee,Kür ve Ücret, Not eligible for the admission in this program as per Date Of Birth,Doğum Tarihine göre bu programa giriş için uygun değil, -Topic {0} has been added to all the selected courses successfully.,"{0} konusu, seçilen tüm kurslara başarıyla eklendi.", +Topic {0} has been added to all the selected courses successfully.,"{0} barındırılan, seçilen tüm kurslara başarıyla eklendi.", Courses updated,Kurslar güncellendi, -{0} {1} has been added to all the selected topics successfully.,"{0} {1}, seçilen tüm konulara başarıyla eklendi.", +{0} {1} has been added to all the selected topics successfully.,"{0} {1}, seçilmiş tüm geçti başarıyla eklendi.", Topics updated,Konular güncellendi, Academic Term and Program,Akademik Dönem ve Program, -Please remove this item and try to submit again or update the posting time.,Lütfen bu öğeyi kaldırın ve tekrar göndermeyi deneyin veya gönderme zamanını güncelleyin., -Failed to Authenticate the API key.,API anahtarının kimliği doğrulanamadı., +Please remove this item and try to submit again or update the posting time.,Lütfen bu öğeyi kullanın ve tekrar göndermeyi deneyin veya gönderme zamanını güncelleyin., +Failed to Authenticate the API key.,API anahtarının anahtarı doğrulanamadı., Invalid Credentials,Geçersiz kimlik bilgileri, URL can only be a string,URL yalnızca bir dize olabilir, -"Here is your webhook secret, this will be shown to you only once.","İşte web kancası sırrınız, bu size yalnızca bir kez gösterilecek.", -The payment for this membership is not paid. To generate invoice fill the payment details,Bu üyelik için ödeme yapılmamaktadır. Fatura oluşturmak için ödeme ayrıntılarını doldurun, +"Here is your webhook secret, this will be shown to you only once.","İşte web kancası sırrınız, bu boyutu yalnızca bir kez gösterecek.", +The payment for this membership is not paid. To generate invoice fill the payment details,Bu üyelikle ödeme için yapılmamaktadır. Fatura oluşturmak için ödeme ayrıntılarını doldurmak, An invoice is already linked to this document,Bu belgeye zaten bir fatura bağlı, -No customer linked to member {},{} Üyesine bağlı müşteri yok, +No customer linked to member {},{}Üyesine bağlı müşteri yok, You need to set Debit Account in Membership Settings,Üyelik Ayarlarında Borç Hesabı ayarlamanız gerekiyor, -You need to set Default Company for invoicing in Membership Settings,Üyelik Ayarlarında faturalandırma için Varsayılan Şirket ayarlamanız gerekir, -You need to enable Send Acknowledge Email in Membership Settings,Üyelik Ayarlarında Onay E-postası Gönder'i etkinleştirmeniz gerekir, -Error creating membership entry for {0},{0} için üyelik girişi oluşturulurken hata meydana geldi, +You need to set Default Company for invoicing in Membership Settings,Üyelik Yapılandırmasında faturalandırma için Varsayılan Şirket ayarlamanız gerekir, +You need to enable Send Acknowledge Email in Membership Settings,Üyelik Ayarlarında Onay E-postası Gönder'i etkinleştirmeniz gerekir, +Error creating membership entry for {0},{0} için üyelik girişi oluştururken hata oluştu, 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", +End Date must not be lesser than Start Date,"Bitiş Tarihi, Başlangıç Tarihinden küçük toplama", Employee {0} already has Active Shift {1}: {2},Çalışan {0} zaten Aktif Vardiyaya sahip {1}: {2}, from {0},{0}, to {0},{0}, -Please select Employee first.,Lütfen önce Çalışan seçin., +Please select Employee first.,Lütfen önce çalıştır seçin., Please set {0} for the Employee or for Department: {1},Lütfen Çalışan veya Departman için {0} ayarlayın: {1}, 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, -Shift Assignment: {0} created for Employee: {1},Vardiya Ataması: {0} Çalışan için oluşturuldu: {1}, +Only Shift Request with status 'Approved' and 'Rejected' can be submitted,Yalnızca 'Onaylandı' ve 'Reddedildi' Durumunda Vardiya İsteği gönderilebilir, +Shift Assignment: {0} created for Employee: {1},Vardiya Ataması: {0} Çalışan için yayınladı: {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., +Only Approvers can Approve this Request.,Bu İsteği Yalnızca Onaylayanlar Onaylayabilirim., Asset Value Analytics,Varlık Değeri Analitiği, Category-wise Asset Value,Kategori Bazında Varlık Değeri, Total Assets,Toplam Varlıklar, 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.", +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 yetkilidir.", Incorrect Date,Yanlış Tarih, -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., +Invalid Gross Purchase Amount,Geçersiz Brüt Satınalma 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ığını iptal etmeden önce hepsini tamamlamanız gerekir., % Complete,% Tamamlayınız, -Back to Course,Kursa dönüş, +Back to Course,Kırsa Dön, Finish Topic,Konuyu Bitir, -Mins,Dakika, +Mins,Dakikalar, by,tarafından, Back to,Geri dön, -Enrolling...,Kaydediliyor ..., +Enrolling...,Kaydediliyor..., You have successfully enrolled for the program ,Programa başarıyla kaydoldunuz, Enrolled,Kayıtlı, -Watch Intro,Tanıtımı İzle, +Watch Intro,Tanıtım İzle, We're here to help!,Yardım etmek için buradayız!, Frequently Read Articles,Sık Okunan Makaleler, -Please set a default company address,Lütfen varsayılan bir şirket adresi ayarlayın, +Please set a default company address,Lütfen varsayılan bir şirket adresi ayarı, {0} is not a valid state! Check for typos or enter the ISO code for your state.,{0} geçerli bir eyalet değil! Yazım hatalarını kontrol edin veya eyaletinizin ISO kodunu girin., -Error occured while parsing Chart of Accounts: Please make sure that no two accounts have the same name,Hesap Planı ayrıştırılırken hata oluştu: Lütfen iki hesabın aynı ada sahip olmadığından emin olun, +Error occured while parsing Chart of Accounts: Please make sure that no two accounts have the same name,Hesap Planı bölünürken hata oluştu: Lütfen iki hesabın aynı ada sahibi olduğundan emin olun, Plaid invalid request error,Ekose geçersiz istek hatası, -Please check your Plaid client ID and secret values,Lütfen Plaid müşteri kimliğinizi ve gizli değerlerinizi kontrol edin, +Please check your Plaid client ID and secret values,Lütfen Plaid müşteri kimliklerinizi ve gizli değerlerinizi kontrol edin, Bank transaction creation error,Banka işlemi oluşturma hatası, -Unit of Measurement,Ölçü birimi, +Unit of Measurement,ölçü birimi, Fiscal Year {0} Does Not Exist,Mali Yıl {0} Mevcut Değil, Row # {0}: Returned Item {1} does not exist in {2} {3},"Satır # {0}: İade Edilen Öğe {1}, {2} {3} içinde mevcut değil", 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., +You do not have permissions to {} items in a {}.,Bir {} içinde {} öğ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ışı'nda belirlenmiş sonuçlara göre güncelleme yapılmasına 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.", 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ın Alma 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ınalma Siparişinde zaten tamamen alınmıştır", 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, -Row #{}: You cannot add postive quantities in a return invoice. Please remove item {} to complete the return.,Satır # {}: Bir iade faturasına pozitif miktarlar ekleyemezsiniz. İadeyi tamamlamak için lütfen {} öğesini kaldırın., -The selected change account {} doesn't belongs to Company {}.,"Seçilen değişiklik hesabı {}, {} Şirketine ait değil.", +Row #{}: You cannot add postive quantities in a return invoice. Please remove item {} to complete the return.,Satır # {}: Bir iade faturasına pozitif miktarlar ekleyemezsiniz. İadeyi muhafaza etmek için lütfen {} aracını kaldırın., +The selected change account {} doesn't belongs to Company {}.,"Seçilen değişiklik hesabı {}, {} suça ait değil.", Atleast one invoice has to be selected.,En az bir fatura seçilmelidir., -Payment methods are mandatory. Please add at least one payment method.,Ödeme yöntemleri zorunludur. Lütfen en az bir ödeme yöntemi ekleyin., +Payment methods are mandatory. Please add at least one payment method.,Ödeme yöntemleri. Lütfen en az bir ödeme yöntemini ekleyin., Please select a default mode of payment,Lütfen varsayılan bir ödeme şekli seçin, -You can only select one mode of payment as default,Varsayılan olarak yalnızca bir ödeme şekli seçebilirsiniz, +You can only select one mode of payment as default,Varsayılan olarak yalnızca bir ödeme yöntemi, Missing Account,Eksik Hesap, -Customers not selected.,Müşteriler seçilmedi., +Customers not selected.,Müşteriler beklentisiydi., 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, +Please enter distributed cost center,Lütfen dağıtılmış maliyet merkezini giriniz, +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, 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., -Cost Center with enabled distributed cost center can not be converted to group,Dağıtılmış maliyet merkezi etkinleştirilmiş Maliyet Merkezi gruba dönüştürülemez, -Cost Center Already Allocated in a Distributed Cost Center cannot be converted to group,Dağıtılmış bir Maliyet Merkezinde Zaten Tahsis Edilmiş Maliyet Merkezi gruba dönüştürülemez, +A Distributed Cost Center cannot be added in the Distributed Cost Center allocation table.,Dağıtılmış Maliyet Merkezi tahsisat tablosuna Dağıtılmış Maliyet Merkezi eklenemez., +Cost Center with enabled distributed cost center can not be converted to group,Dağıtılmış maliyet merkezi etkinleştirilmiş Maliyet Merkezi tablosu dönüştürülemez, +Cost Center Already Allocated in a Distributed Cost Center cannot be converted to group,Dağıtılmış bir Maliyet Merkezinde Zaten Tahsis Edilmiş Maliyet Merkezi birimi dönüştürülemez, Trial Period Start date cannot be after Subscription Start Date,"Deneme Süresi Başlangıç tarihi, Abonelik Başlangıç Tarihinden sonra olamaz", -Subscription End Date must be after {0} as per the subscription plan,"Abonelik Bitiş Tarihi, abonelik planına göre {0} tarihinden sonra olmalıdır", -Subscription End Date is mandatory to follow calendar months,Takvim aylarını takip etmek için Abonelik Bitiş Tarihi zorunludur, -Row #{}: POS Invoice {} is not against customer {},Satır # {}: POS Faturası {} müşteriye karşı değil {}, -Row #{}: POS Invoice {} is not submitted yet,Satır # {}: POS Faturası {} henüz gönderilmedi, +Subscription End Date must be after {0} as per the subscription plan,"Abonelik Bitiş Tarihi, üyelik planına göre {0} hattı sonra olmalıdır", +Subscription End Date is mandatory to follow calendar months,Takvim aylarını takip etmek için Abonelik Bitiş Tarihi cezaları, +Row #{}: POS Invoice {} is not against customer {},Satır # {}: POS Faturası {} satışı karşı değil {}, +Row #{}: POS Invoice {} is not submitted yet,Satır # {}: POS Faturası {} hemen gönderilirdi, Row #{}: POS Invoice {} has been {},Satır # {}: POS Faturası {} {}, -No Supplier found for Inter Company Transactions which represents company {0},{0} şirketini temsil eden Şirketler Arası İşlemler için Tedarikçi bulunamadı, +No Supplier found for Inter Company Transactions which represents company {0},{0} şirketini temsil eden Şirketler Arası İşlemler için Tedarikçi Bulunmuyor, No Customer found for Inter Company Transactions which represents company {0},{0} şirketini temsil eden Şirketler Arası İşlemler için Müşteri bulunamadı, Invalid Period,Geçersiz Dönem, Selected POS Opening Entry should be open.,Seçilen POS Açılış Girişi açık olmalıdır., Invalid Opening Entry,Geçersiz Açılış Girişi, -Please set a Company,Lütfen bir Şirket belirleyin, -"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", +Please set a Company,Lütfen bir Şirket belirledi, +"Sorry, this coupon code's validity has not started","Üzgünüz, bu kupon panelinin geçerliliği başlamadı", +"Sorry, this coupon code's validity has expired","Üzgünüz, bu kupon perdenizin 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,"Kuralı Diğerine Uygula" birleştirmeler için {0} alan kullanımları, {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, -Please enter a valid coupon code,Lütfen geçerli bir kupon kodu girin, -Invalid Child Procedure,Geçersiz Çocuk Prosedürü, -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.", +Only {0} in Stock for item {1},{1} öğe için yalnızca {0} Stokta, +Please enter a coupon code,Lütfen bir kupon kodunu giriniz, +Please enter a valid coupon code,Lütfen geçerli bir kupon kodunu girin, +Invalid Child Procedure,Geçersiz Çocuk cinayeti, +Import Italian Supplier Invoice.,İtalyan tedarikçisi 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şlerini yapmak için gereklidir.", + Here are the options to proceed:,Devam etmek için seçenekler bandı:, +"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ı öğe olarak işlem görüyorsa, lütfen {0} Öğe tablosundaki 'Sıfır Değerleme Oranına İzin Ver'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:, + performing either one below:,evli birini gerçekleştirme:, Create an incoming stock transaction for the Item.,Öğe için gelen bir stok işlemi oluşturun., Mention Valuation Rate in the Item master.,Öğe ana bilgisinde Değerleme Oranından bahsedin., Valuation Rate Missing,Değerleme Oranı Eksik, @@ -9426,17 +9426,17 @@ Quantity Mismatch,Miktar Uyuşmazlığı, "Please Restock Items and Update the Pick List to continue. To discontinue, cancel the Pick List.",Devam etmek için lütfen Ürünleri Yeniden Stoklayın ve Seçim Listesini Güncelleyin. Devam etmemek için Seçim Listesini iptal edin., Out of Stock,Stoklar tükendi, {0} units of Item {1} is not available.,{0} Öğe birimleri {1} mevcut değil., -Item for row {0} does not match Material Request,"{0} satırı için öğe, Malzeme İsteği ile eşleşmiyor", -Warehouse for row {0} does not match Material Request,"{0} satırı için depo, Malzeme Talebiyle eşleşmiyor", +Item for row {0} does not match Material Request,"{0} tanımlama için öğe, Malzeme İsteği ile eşleşmiyor", +Warehouse for row {0} does not match Material Request,"{0} bilgi için depo, Malzeme Talebiyle eşleşmiyor", Accounting Entry for Service,Hizmet için Muhasebe Girişi, -All items have already been Invoiced/Returned,Tüm öğeler zaten Faturalandırıldı / İade edildi, -All these items have already been Invoiced/Returned,Tüm bu öğeler zaten Faturalandırıldı / İade edildi, +All items have already been Invoiced/Returned,Tüm sarf malzemeleri zaten faturalandırıldı / İade edildi, +All these items have already been Invoiced/Returned,Tüm bu tüketim zaten faturalandırıldı / İade edildi, Stock Reconciliations,Stok Mutabakatları, Merge not allowed,Birleştirmeye izin verilmiyor, -The following deleted attributes exist in Variants but not in the Template. You can either delete the Variants or keep the attribute(s) in template.,Aşağıdaki silinmiş öznitelikler Varyantlarda mevcuttur ancak Şablonda yoktur. Varyantları silebilir veya nitelikleri şablonda tutabilirsiniz., +The following deleted attributes exist in Variants but not in the Template. You can either delete the Variants or keep the attribute(s) in template.,aşağıdaki silinmiş öznitelikler Varyantlarda mevcuttur ancak Şablonda yoktur. Varyantları silebilir veya kullanım şablonunda tutabilirsiniz., Variant Items,Varyant Öğeler, Variant Attribute Error,Varyant Öznitelik Hatası, -The serial no {0} does not belong to item {1},"Seri no {0}, {1} öğesine ait değil", +The serial no {0} does not belong to item {1},"Seri no {0}, {1} ayarı ait değil", There is no batch found against the {0}: {1},{0} için grup bulunamadı: {1}, Completed Operation,Tamamlanan İşlem, Work Order Analysis,İş Emri Analizi, @@ -9456,146 +9456,146 @@ Total Forecast (Future Data),Toplam Tahmin (Gelecek Veriler), Based On Document,Belgeye Dayalı, Based On Data ( in years ),Verilere Dayalı (yıl olarak), Smoothing Constant,Sabit Düzeltme, -Please fill the Sales Orders table,Lütfen Satış Siparişleri tablosunu doldurun, +Please fill the Sales Orders table,Lütfen Satış Siparişleri tablosunu doldurunuz, Sales Orders Required,Gerekli Satış Siparişleri, Please fill the Material Requests table,Lütfen Malzeme Talepleri tablosunu doldurun, Material Requests Required,Gerekli Malzeme Talepleri, -Items to Manufacture are required to pull the Raw Materials associated with it.,Üretilecek Öğelerin kendisiyle ilişkili Ham Maddeleri çekmesi gerekir., +Items to Manufacture are required to pull the Raw Materials associated with it.,Üretilecek Öğelerin yanında bulunan ilk madde ve malzemeleri çekmesi gerekir., Items Required,Gerekli Öğeler, Operation {0} does not belong to the work order {1},"{0} işlemi, {1} iş emrine ait değil", -Print UOM after Quantity,Miktardan Sonra UOM Yazdır, -Set default {0} account for perpetual inventory for non stock items,Stokta olmayan öğeler için kalıcı envanter için varsayılan {0} hesabını ayarlayın, +Print UOM after Quantity,Miktardan Sonra Birimi Yazdır, +Set default {0} account for perpetual inventory for non stock items,Stokta olmayan sunucular için kalıcı envanter için yerleşik {0} hesabını ayarladı, Loan Security {0} added multiple times,Kredi Güvenliği {0} birden çok kez eklendi, -Loan Securities with different LTV ratio cannot be pledged against one loan,Farklı LTV oranına sahip Kredi Menkul Kıymetleri tek bir krediye karşı rehin edilemez, -Qty or Amount is mandatory for loan security!,Kredi güvenliği için Miktar veya Miktar zorunludur!, -Only submittted unpledge requests can be approved,Yalnızca gönderilmiş makbuz talepleri onaylanabilir, -Interest Amount or Principal Amount is mandatory,Faiz Tutarı veya Anapara Tutarı zorunludur, +Loan Securities with different LTV ratio cannot be pledged against one loan,Farklı LTV kredilerine sahip Kredi Menkul Kıymetleri tek bir krediye karşı rehin olamaz, +Qty or Amount is mandatory for loan security!,Kredi kurtarma için Miktar veya Miktar müşterileri!, +Only submittted unpledge requests can be approved,Yalnızca gönderilmiş makbuz işlemleri onaylanabilir, +Interest Amount or Principal Amount is mandatory,Faiz Tutarı veya Anapara Tutarı yaptırımları, Disbursed Amount cannot be greater than {0},Ödenen Tutar en fazla {0} olabilir, Row {0}: Loan Security {1} added multiple times,Satır {0}: Kredi Teminatı {1} birden çok kez eklendi, -Row #{0}: Child Item should not be a Product Bundle. Please remove Item {1} and Save,"Satır # {0}: Alt Öğe, Ürün Paketi olmamalıdır. Lütfen {1} Öğesini kaldırın ve Kaydedin", +Row #{0}: Child Item should not be a Product Bundle. Please remove Item {1} and Save,"Satır # {0}: Alt Öğe, Ürün Paketi paketi. Lütfen {1} Öğesini yükleme ve Kaydedin", Credit limit reached for customer {0},{0} müşterisi için kredi limitine ulaşıldı, -Could not auto create Customer due to the following missing mandatory field(s):,Aşağıdaki zorunlu alanların eksik olması nedeniyle Müşteri otomatik olarak oluşturulamadı:, -Please create Customer from Lead {0}.,Lütfen {0} Potansiyelinden Müşteri oluşturun., +Could not auto create Customer due to the following missing mandatory field(s):,Aşağıdaki zorunlu grupları eksik olması müşteri nedeniyle otomatik olarak oluşturulamadı:, +Please create Customer from Lead {0}.,Lütfen {0} Müşteri Adayından oluşturun., Mandatory Missing,Zorunlu Eksik, -Please set Payroll based on in Payroll settings,Lütfen Bordro ayarlarına göre Bordro ayarlayın, -Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3},Ek Maaş: {0} Maaş Bileşeni için zaten mevcut: {1} {2} dönemi ve {3}, +Please set Payroll based on in Payroll settings,Lütfen Bordro ayarlarına göre Bordro ayarı, +Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3},Ek Maaş: {0} Maaş Bileşeni için zaten mevcut: {1} {2} dönem ve {3}, From Date can not be greater than To Date.,"Başlangıç Tarihi, Bitiş Tarihinden büyük olamaz.", -Payroll date can not be less than employee's joining date.,"Bordro tarihi, çalışanın işe giriş tarihinden az olamaz.", -From date can not be less than employee's joining date.,İşçinin işe giriş tarihinden önceki tarih olamaz., -To date can not be greater than employee's relieving date.,Bugüne kadar çalışanın rahatlama tarihinden fazla olamaz., -Payroll date can not be greater than employee's relieving date.,"Bordro tarihi, çalışanın cayma tarihinden büyük olamaz.", +Payroll date can not be less than employee's joining date.,"Bordro tarihi, çalışanların işe giriş işlemleri az olamaz.", +From date can not be less than employee's joining date.,İşçinin işe giriş yükünün önceki tarihi olamaz., +To date can not be greater than employee's relieving date.,Bugüne kadar çalışanların rahatlaması fazla olamaz., +Payroll date can not be greater than employee's relieving date.,"Bordro tarihi, çalışanların cayma yolları büyük olamaz.", Row #{0}: Please enter the result value for {1},Satır # {0}: Lütfen {1} için sonuç değerini girin, Mandatory Results,Zorunlu Sonuçlar, -Sales Invoice or Patient Encounter is required to create Lab Tests,Laboratuvar Testleri oluşturmak için Satış Faturası veya Hasta Karşılaşması gereklidir, +Sales Invoice or Patient Encounter is required to create Lab Tests,Laboratuvar Testleri oluşturmak için Satış Faturası veya Hasta Karşılaması gereklidir, Insufficient Data,Yetersiz veri, -Lab Test(s) {0} created successfully,{0} Laboratuar Testleri başarıyla oluşturuldu, +Lab Test(s) {0} created successfully,{0} Laboratuar Testleri başarıyla kuruldu, Test :,Ölçek :, -Sample Collection {0} has been created,Örnek Koleksiyon {0} oluşturuldu, +Sample Collection {0} has been created,Örnek Koleksiyon {0} sahibi, Normal Range: ,Normal alan:, Row #{0}: Check Out datetime cannot be less than Check In datetime,"Satır # {0}: Teslim Alma tarih saati, Teslim Etme tarih saatinden az olamaz", "Missing required details, did not create Inpatient Record","Gerekli ayrıntılar eksik, Yatan Hasta Kaydı oluşturmadı", -Unbilled Invoices,Faturalanmamış Faturalar, -Standard Selling Rate should be greater than zero.,Standart Satış Oranı sıfırdan büyük olmalıdır., -Conversion Factor is mandatory,Dönüştürme Faktörü zorunludur, -Row #{0}: Conversion Factor is mandatory,Satır # {0}: Dönüşüm Faktörü zorunludur, +Unbilled Invoices,Faturasız Faturalar, +Standard Selling Rate should be greater than zero.,Standart Satış Oranlarından büyük olmalıdır., +Conversion Factor is mandatory,Dönüştürme Faktörü tüketimi, +Row #{0}: Conversion Factor is mandatory,Satır # {0}: Dönüşüm Faktörü Maliyetleri, Sample Quantity cannot be negative or 0,Örnek Miktarı negatif veya 0 olamaz, Invalid Quantity,Geçersiz Miktar, "Please set defaults for Customer Group, Territory and Selling Price List in Selling Settings","Lütfen Satış Ayarlarında Müşteri Grubu, Bölge ve Satış Fiyatı Listesi için varsayılanları ayarlayın", {0} on {1},{1} tarihinde {0}, -{0} with {1},"{0}, {1} ile", +{0} with {1},"{0}, {1} dosyası", Appointment Confirmation Message Not Sent,Randevu Onay Mesajı Gönderilmedi, -"SMS not sent, please check SMS Settings","SMS gönderilmedi, lütfen SMS Ayarlarını kontrol edin", +"SMS not sent, please check SMS Settings","SMS gönderirdi, lütfen SMS Ayarlarını kontrol edin", Healthcare Service Unit Type cannot have both {0} and {1},Sağlık Hizmeti Birimi Türünde hem {0} hem de {1} olamaz, Healthcare Service Unit Type must allow atleast one among {0} and {1},"Sağlık Hizmeti Birimi Türü, {0} ve {1} arasında en az birine izin vermelidir", -Set Response Time and Resolution Time for Priority {0} in row {1}.,{1} satırında {0} Öncelik için Yanıt Süresi ve Çözüm Süresini ayarlayın., -Response Time for {0} priority in row {1} can't be greater than Resolution Time.,"{1} satırındaki {0} önceliği için Yanıt Süresi, Çözüm Süresinden fazla olamaz.", +Set Response Time and Resolution Time for Priority {0} in row {1}.,{1} bilgisinde {0} Öncelik için Yanıt Süresi ve Çözüm Süresini ölçer., +Response Time for {0} priority in row {1} can't be greater than Resolution Time.,"{1} bilgisindeki {0} öncekiliği için Yanıt Süresi, Çözüm Süresinden fazla olamaz.", {0} is not enabled in {1},"{0}, {1} içinde etkinleştirilmedi", Group by Material Request,Malzeme Talebine Göre Gruplama, Email Sent to Supplier {0},Tedarikçiye Gönderilen E-posta {0}, "The Access to Request for Quotation From Portal is Disabled. To Allow Access, Enable it in Portal Settings.",Portaldan Teklif İsteğine Erişim Devre Dışı Bırakıldı. Erişime İzin Vermek için Portal Ayarlarında etkinleştirin., -Supplier Quotation {0} Created,Tedarikçi Teklifi {0} Oluşturuldu, +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 ifadesi, Örnek: bölge! = 'Tüm Bölgeler'", Sales Contributions and Incentives,Satış Katkıları ve Teşvikler, -Sourced by Supplier,Tedarikçi Kaynaklı, -Total weightage assigned should be 100%.
It is {0},Atanan toplam ağırlık% 100 olmalıdır.
{0}, +Sourced by Supplier,tedarikçi Kaynaklı, +Total weightage assigned should be 100%.
It is {0},Atanan toplam ağırlık %100 olmalıdır.
{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", -Invalid condition expression,Geçersiz koşul ifadesi, +Invalid condition expression,Geçersiz cümle 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, -Provide the invoice portion in percent,Fatura kısmını yüzde olarak sağlayın, -Give number of days according to prior selection,Önceki seçime göre gün sayısı verin, +Please Select Both Company and Party Type First,Lütfen Önce Şirket ve Cari Türünü Seçin, +Provide the invoice portion in percent,Fatura kısmı yüzde olarak yönlendirme, +Give number of days according to prior selection,Önceki seçime göre gün sayısını verin, Email Details,E-posta Ayrıntıları, -"Select a greeting for the receiver. E.g. Mr., Ms., etc.","Alıcı için bir karşılama mesajı seçin. Örneğin Bay, Bayan, vb.", -Preview Email,E-postayı Önizle, -Please select a Supplier,Lütfen bir Tedarikçi seçin, +"Select a greeting for the receiver. E.g. Mr., Ms., etc.","Alıcı için bir selamlama hitabı seçin. Örneğin Sayın vb.", +Preview Email,E-posta Önizlemesi, +Please select a Supplier,Lütfen bir Tedarikçi seçiniz, Supplier Lead Time (days),Tedarikçi Teslimat Süresi (gün), "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., +Exit Interview Held On,Çıkış Mülakat Bekleme Tarihi, +Condition and formula,Koşul ve Formüller, +Sets 'Target Warehouse' in each row of the Items table.,Kalemler tablosunun her tablosunda 'Hedef Depo' ayarlar., +Sets 'Source Warehouse' in each row of the Items table.,Kalemler tablosunun her tablosunda 'Kaynak Depo' 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, -"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, +"Can not filter based on POS Profile, if grouped by POS Profile","POS Profiline göre gruplandırılmışsa, POS Profiline göre yapılamaz", +"Can not filter based on Customer, if grouped by Customer","Müşteriye göre gruplandırılmışsa, müşteriyi görerek yapılamaz", +"Can not filter based on Cashier, if grouped by Cashier",Kasiyere göre gruplandırılmışsa Kasiyere göre filtre olamaz, +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 yapılamaz, Supplier Quotation Comparison,Tedarikçi Teklif Karşılaştırması, -Price per Unit (Stock UOM),Birim Fiyat (Stok UOM), -Group by Supplier,Tedarikçiye Göre Gruplama, -Group by Item,Öğeye Göre Gruplama, -Remember to set {field_label}. It is required by {regulation}.,{Field_label} ayarlamayı unutmayın. {Düzenleme} tarafından gereklidir., -Enrollment Date cannot be before the Start Date of the Academic Year {0},"Kayıt Tarihi, Akademik Yılın Başlangıç Tarihinden önce olamaz {0}", +Price per Unit (Stock UOM),Birim Fiyat (Stok Birimi), +Group by Supplier,Tedarikçiye göre Grupla, +Group by Item,Öğeye göre Grupla, +Remember to set {field_label}. It is required by {regulation}.,{Field_label} ayarlamayı unutmayın. {düzenleme} tarafından dahil edilmiştir., +Enrollment Date cannot be before the Start Date of the Academic Year {0},"Kayıt Tarihi, Akademik Başlangıç Tarihinden önce olamaz {0}", Enrollment Date cannot be after the End Date of the Academic Term {0},Kayıt Tarihi Akademik Dönemin Bitiş Tarihinden sonra olamaz {0}, Enrollment Date cannot be before the Start Date of the Academic Term {0},"Kayıt Tarihi, Akademik Dönemin Başlangıç Tarihinden önce olamaz {0}", -Future Posting Not Allowed,Gelecekte Göndermeye İzin Verilmiyor, -"To enable Capital Work in Progress Accounting, ","Devam Eden Sermaye Çalışması Muhasebesini etkinleştirmek için,", -you must select Capital Work in Progress Account in accounts table,hesaplar tablosunda Devam Eden Sermaye İşlemi Hesabını seçmelisiniz, -You can also set default CWIP account in Company {},"Ayrıca, Şirket içinde varsayılan CWIP hesabı da ayarlayabilirsiniz {}", -The Request for Quotation can be accessed by clicking on the following button,Teklif Talebine aşağıdaki butona tıklanarak ulaşılabilir., +Future Posting Not Allowed,Hayatına Göndermeye İzin Verilmiyor, +"To enable Capital Work in Progress Accounting, ","Yarı Mamul Muhasebesini etkinleştirmek için,", +you must select Capital Work in Progress Account in accounts table,hesaplarda Sermaye Yarı Mamul Hesabını seçmelisiniz, +You can also set default CWIP account in Company {},"Ayrıca, Şirket içinde genel CWIP hesabı da ayarlayabilirsiniz {}", +The Request for Quotation can be accessed by clicking on the following button,Teklif Talebine aşağıdaki butona tıklanarak erişim sağlanır., Regards,Saygılarımızla, Please click on the following button to set your new password,Yeni şifrenizi belirlemek için lütfen aşağıdaki düğmeyi tıklayın, Update Password,Şifreyi güncelle, -Row #{}: Selling rate for item {} is lower than its {}. Selling {} should be atleast {},"Satır # {}: {} öğesinin satış oranı, {} değerinden düşük. {} Satışı en az {} olmalıdır", +Row #{}: Selling rate for item {} is lower than its {}. Selling {} should be atleast {},"Satır # {}: {} öğenin satış oranı, {} değerinden düşüktür. {} Satışı en az {} olmalıdır", You can alternatively disable selling price validation in {} to bypass this validation.,Bu doğrulamayı atlamak için alternatif olarak {} içinde satış fiyatı doğrulamasını devre dışı bırakabilirsiniz., Invalid Selling Price,Geçersiz Satış Fiyatı, 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, +Import Chart of Accounts from CSV / Excel files,Hesap Planını CSV / Excel dosyalarından içe aktarma, Completed Qty cannot be greater than 'Qty to Manufacture',Tamamlanan Miktar "Üretilecek Miktar" 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", +"Row {0}: For Supplier {1}, Email Address is Required to send an email","Satır {0}: Tedarikçi {1} için, e-posta aramak için E-posta Adresi Gereklidir", +"If enabled, the system will post accounting entries for inventory automatically","Etkinleştiriliyorse, sistem envanteri için muhasebe girişlerini otomatik olarak yetkilendiriyor", 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, +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 giremez 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", -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 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.", +Address used to determine Tax Category in transactions,İşlemlerde Kategori Vergisini 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ş verilen 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", +This role is allowed to submit transactions that exceed credit limits,"Bu rolün, kredi limitlerini aşan işlemlerin gönderilmesine 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" Kullanırken, bir aydaki gün kullanımlarında her ay için ertelenmiş gelir veya gider olarak sabit bir tutması gerekir. Ertelenmiş gelir veya giderler tüm bir ay rezerv içine olmayacakse, yaşayacak 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 sınırlaması 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ı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, +Is Purchase Order Required for Purchase Invoice & Receipt Creation?,Satınalma Faturası ve İrsaliye oluşturmak için Satınalma Siparişi gerekiyor mu?, +Is Purchase Receipt Required for Purchase Invoice Creation?,Satınalma Faturası oluşturmak için Satınalma İrsaliyesi gerekli mi?, +Maintain Same Rate Throughout the Purchase Cycle,Satınalma Döngüsü Boyunca Aynı Oranı Koruyun, +Allow Item To Be Added Multiple Times in a Transaction,Bir İşlemde Öğenin Birden Fazla Kez Eklenmesi İ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., +Send Emails to Suppliers,Tedarikçilere E-posta Gönder, +Select a Supplier,Bir tedarikçi Seçin, +Cannot mark attendance for future dates.,Gelecek tarihler için işaretlenemez., Do you want to update attendance?
Present: {0}
Absent: {1},Katılımı güncellemek istiyor musunuz?
Şu an: {0}
Yok: {1}, Mpesa Settings,Mpesa Ayarları, Initiator Name,Başlatıcı Adı, Till Number,Numaraya Kadar, -Sandbox,Kum havuzu, - Online PassKey,Online PassKey, +Sandbox,Sandbox, + Online PassKey, Online PassKey, Security Credential,Güvenlik Kimlik Bilgileri, Get Account Balance,Hesap Bakiyesini Alın, -Please set the initiator name and the security credential,Lütfen başlatıcı adını ve güvenlik kimlik bilgilerini ayarlayın, +Please set the initiator name and the security credential,Lütfen başlatıcı adı ve güvenlik kimlik bilgileri güvenlik ayarı, Inpatient Medication Entry,Yatan Hasta İlaç Girişi, HLC-IME-.YYYY.-,HLC-IME-.YYYY.-, Item Code (Drug),Ürün Kodu (İlaç), @@ -9622,102 +9622,102 @@ Adding Order Entries,Sipariş Girişleri Ekleme, Inpatient Medication Order Entry,Yatan Hasta İlaç Tedavisi Sipariş Girişi, Is Order Completed,Sipariş Tamamlandı mı, Employee Records to Be Created By,Oluşturulacak Çalışan Kayıtları, -Employee records are created using the selected field,Çalışan kayıtları seçilen alan kullanılarak oluşturulur, -Don't send employee birthday reminders,Çalışanlara doğum günü hatırlatıcıları göndermeyin, +Employee records are created using the selected field,Çalışan kayıtları çalıştıran alan çalıştıran, +Don't send employee birthday reminders,akrabaların doğum günü hatırlatıcıları göndermeyin, Restrict Backdated Leave Applications,Geriye Dönük İzin Uygulamalarını Kısıtla, -Sequence ID,Sıra kimliği, -Sequence Id,Sıra Kimliği, -Allow multiple material consumptions against a Work Order,Bir İş Emrine karşı birden fazla malzeme tüketimine izin verin, -Plan time logs outside Workstation working hours,İş İstasyonu çalışma saatleri dışında zaman günlüklerini planlayın, +Sequence ID,Sıra No, +Sequence Id,Sıra no, +Allow multiple material consumptions against a Work Order,Bir İş Emrine karşı birden fazla malzeme kullanımına izin verin, +Plan time logs outside Workstation working hours,Zaman günlüklerini İş İstasyonu çalışma saatleri dışında planlayın, Plan operations X days in advance,İşlemleri X gün önceden planlayın, 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ın Alma 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",İlk madde ve malzemelerin en son Değerleme Oranı / Fiyat Listesi Oranı / Son Satınalma Oranına göre ürün reçetesi hesabı 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ç, +Select Items,Ögeleri 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, -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ı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, +Auto close Opportunity after the no. of days mentioned above,No'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ı için Satış Siparişi Gerekiyor mu?, +Is Delivery Note Required for Sales Invoice Creation?,Satış Faturası Oluşturmak için İrsaliye Gerekli mi?, +How often should Project and Company be updated based on Sales Transactions?,Satış İşlemlerine göre Proje ve Şirket hangi sıklıkta güncellenmelidir?, +Allow User to Edit Price List Rate in Transactions,Kullanıcının İşlemlerinde Fiyat Listesi Oranını Düzenlemesine İzin Ver, +Allow Item to Be Added Multiple Times in a Transaction,Bir İşlemde Öğenin Birden Fazla Kez Eklenmesi İ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 Ver, +Validate Selling Price for Item Against Purchase Rate or Valuation Rate,Alış Fiyatı veya Değerleme Oranına Karşı Ürün için Satış Fiyatını Doğrula, 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 Ayarlama, -Set Qty in Transactions Based on Serial No Input,Seri No Girişine Dayalı İşlemlerde Miktarı Ayarla, +Auto Insert Price List Rate If Missing,Eksikse Otomatik Fiyat Listesi Oranı Ekle, +Automatically Set Serial Nos Based on FIFO,FIFO'ya Göre Seri Numaralarını Otomatik Olarak Ayarlama, +Set Qty in Transactions Based on Serial No Input,Seri No Girişine Dayılı İşlemlerde Miktarı Ayarla, 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,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, +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,İrsaliyeden Satınalma 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ı, +The unallocated amount of Payment Entry {0} is greater than the Bank Transaction's unallocated amount,"Ayrılmamış Ödeme Giriş birimleri {0}, Banka İşleminin ayrılmamış geçişlerden daha büyük", +Payment Received,Ödeme Alındı, Attendance cannot be marked outside of Academic Year {0},Katılım Akademik Yıl dışında işaretlenemez {0}, -Student is already enrolled via Course Enrollment {0},"Öğrenci, Kurs Kaydı aracılığıyla zaten kayıtlı {0}", +Student is already enrolled via Course Enrollment {0},"Öğrenci, Kurs Kaydır 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:, -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., +Please add programs to enable admission application.,Lütfen kabul programını kullanmak için programları ekleyin., +The following employees are currently still reporting to {0}:,Aşağıdaki çalışanlar şu anda yaşıyor {0} 'a rapor veriyor:, +Please make sure the employees above report to another Active employee.,Lütfen yukarıdaki işyerinde başka bir çalışana rapor ettiğ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öntemini seçin. Mpesa, '{0}' para birimindeki işlemler desteklenmiyor", 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", -Mpesa Express Error,Mpesa Express Hatası, +"Issue detected with Mpesa configuration, check the error logs for more details","Mpesa cennetinde sorun algılandı, daha fazla ayrıntı için hata günlüklerini kontrol edin", +Mpesa Express Error,Mpesa Ekspres Hatası, Account Balance Processing Error,Hesap Bakiyesi İşleme Hatası, -Please check your configuration and try again,Lütfen yapılandırmanızı kontrol edin ve tekrar deneyin, +Please check your configuration and try again,Lütfen geçitlerinizi kontrol edin ve tekrar deneyin., Mpesa Account Balance Processing Error,Mpesa Hesap Bakiyesi İşleme Hatası, Balance Details,Bakiye Ayrıntıları, Current Balance,Mevcut Bakiye, Available Balance,Kalan bakiye, Reserved Balance,Ayrılmış Bakiye, Uncleared Balance,Temizlenmemiş Bakiye, -Payment related to {0} is not completed,{0} ile ilgili ödeme tamamlanmadı, -Row #{}: Item Code: {} is not available under warehouse {}.,"Satır # {}: Öğe Kodu: {}, {} deposunda kullanılamaz.", -Row #{}: Stock quantity not enough for Item Code: {} under warehouse {}. Available quantity {}.,Satır # {}: Stok miktarı Ürün Kodu için yeterli değil: {} depo altında {}. Mevcut Miktarı {}., -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, -Please enter the phone number first,Lütfen önce telefon numarasını girin, +Payment related to {0} is not completed,{0} ile ilgili ödeme tamamlamadı, +Row #{}: Item Code: {} is not available under warehouse {}.,"Satır # {}: Öge Kodu: {}, {} deposunda kolaylıklar.", +Row #{}: Stock quantity not enough for Item Code: {} under warehouse {}. Available quantity {}.,Satır # {}: Stok miktarı Ürün Kodu için yeterli değil: {} deposu altında {}. Mevcut Miktarı {}., +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 kullanmak için onu kaldırmak., +Row #{}: No serial number selected against item: {}. Please select one or remove it to complete transaction.,Satır # {}: {} öğeye karşı seri numarası olması gerekiyordu. İşlemi muhafaza etmek için lütfen birini seçin veya yükleyin., +Row #{}: No batch selected against item: {}. Please select a batch or remove it to complete transaction.,Satır # {}: Öğeye karşı parti olmasıdi: {}. İşlemi bölmek için lütfen bir grup seçin veya yükleyin., +Payment amount cannot be less than or equal to 0,Ödeme parçaları 0'dan küçük veya 0'a eşit olamaz, +Please enter the phone number first,Lütfen önce telefon numarasını giriniz, 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, -You had {} errors while creating opening invoices. Check {} for more details,Açılış faturaları oluştururken {} hata yaptınız. Daha fazla ayrıntı için {} adresini kontrol edin, +Row #{0}: {1} is required to create the Opening {2} Invoices,Satır # {0}: {1} Açılış {2} Faturalarını oluşturmak için kuruluş, +You had {} errors while creating opening invoices. Check {} for more details,Açılış faturaları oluştururken {} hata yaptı. Daha fazla detay için {} adresi kontrol edin, Error Occured,Hata oluştu, Opening Invoice Creation In Progress,Fatura Oluşturma İşleminin Açılması, Creating {} out of {} {},{} / {} {} Oluşturuluyor, -(Serial No: {0}) cannot be consumed as it's reserverd to fullfill Sales Order {1}.,"(Seri No: {0}), Satış Siparişini tamamlamak üzere yeniden sunulduğu için kullanılamaz {1}.", -Item {0} {1},Öğe {0} {1}, -Last Stock Transaction for item {0} under warehouse {1} was on {2}.,{1} deposu altındaki {0} öğesi için son Stok İşlemi {2} tarihinde yapıldı., -Stock Transactions for Item {0} under warehouse {1} cannot be posted before this time.,{1} deposu altındaki {0} Öğesi için Stok İşlemleri bu süreden önce deftere nakledilemez., -Posting future stock transactions are not allowed due to Immutable Ledger,Immutable Ledger nedeniyle gelecekteki hisse senedi işlemlerinin kaydedilmesine izin verilmiyor, -A BOM with name {0} already exists for item {1}.,{1} öğesi için {0} adlı bir malzeme listesi zaten var., -{0}{1} Did you rename the item? Please contact Administrator / Tech support,{0} {1} Öğeyi yeniden adlandırdınız mı? Lütfen Yönetici / Teknik destek ile iletişime geçin, -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, -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 Girişi oluşturuldu ve, +(Serial No: {0}) cannot be consumed as it's reserverd to fullfill Sales Order {1}.,"(Seri No: {0}), Satış Siparişini muhafaza etmek üzere yeniden sunulduğu için götürmek {1}.", +Item {0} {1},öğe {0} {1}, +Last Stock Transaction for item {0} under warehouse {1} was on {2}.,{1} depolama verileri {0} öğesi için son Stok İşlemi {2} tarihinde yapıldı., +Stock Transactions for Item {0} under warehouse {1} cannot be posted before this time.,{1}depo verileri {0} Öğesi için Stok İşlemleri bu süreden önce deftere aktarılamaz., +Posting future stock transactions are not allowed due to Immutable Ledger,Immutable Ledger nedeniyle kaynakları hisse senedi işlemlerinin kaydedilmesine izin verilmiyor, +A BOM with name {0} already exists for item {1}.,{1} öğe için {0} adlı bir malzeme listesi zaten var., +{0}{1} Did you rename the item? Please contact Administrator / Tech support,{0} {1} Öğeyi yeniden adlandırdınız mı? Lütfen Yönetici / Teknik destek ile iletişim geçin, +At row #{0}: the sequence id {1} cannot be less than previous row sequence id {2},"{0}. Satırda: {1} sıralı kimlik, önceki satır dizisi kimliğinden {2} küçük olamaz", +The {0} ({1}) must be equal to {2} ({3}),"{0} ({1}), {2} ({3}) eşit olmalıdır", +"{0}, complete the operation {1} before the operation {2}.","{0}, işlem {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 kargo 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 bulunmuyor. Seri No ile teslimat garanti edilemez, +No pending medication orders found for selected criteria,Seçilen hükümler için bekleyen ilaç siparişi bulunamadı, +From Date cannot be after the current date.,"Başlangıç Tarihi, geçerli sınırlama sonra olamaz.", +To Date cannot be after the current date.,"Bitiş Tarihi, geçerli açıklaması sonra olamaz.", +From Time cannot be after the current time.,From Time zaman sınırı sonra olamaz., +To Time cannot be after the current time.,To Time zaman sınırı sonra olamaz., +Stock Entry {0} created and ,{0} Stok Hareketi kaydı 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 Girişi oluşturun., +Quantity not available for {0} in warehouse {1},{1}haftasında {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 Yapılandırmalarında Negatif Stoka İzin Sürümünü etkinleştirin veya Stok Hareketi 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, @@ -9731,110 +9731,402 @@ Therapy Plan Template Detail,Tedavi Planı Şablon Detayı, Non Conformance,Uygunsuzluk, Process Owner,İşlem Sahibi, Corrective Action,Düzeltici eylem, -Preventive Action,Önleyici eylem, -Problem,Sorun, -Responsible,Sorumluluk sahibi, -Completion By,Tamamlayan, +Preventive Action,Önleyici eylemleyici, +Problem,sorun, +Responsible,sorumluluk sahibi, +Completion By,tamamlayan, Process Owner Full Name,İşlem Sahibinin Tam Adı, Right Index,Sağ Dizin, Left Index,Sol Dizin, -Sub Procedure,Alt Prosedür, +Sub Procedure,Alt çember, Passed,Geçti, Print Receipt,Makbuzu yazdır, -Edit Receipt,Makbuzu Düzenle, +Edit Receipt,Makbuzu düzenleyici, Focus on search input,Arama girdisine odaklanın, -Focus on Item Group filter,Öğe Grubu filtresine odaklanın, +Focus on Item Group filter,Öğe Grubu odaklarının odak noktası, Checkout Order / Submit Order / New Order,Ödeme Siparişi / Sipariş Gönder / Yeni Sipariş, Add Order Discount,Sipariş İndirimi Ekle, -Item Code: {0} is not available under warehouse {1}.,"Ürün Kodu: {0}, {1} deposunda kullanılamaz.", -Serial numbers unavailable for Item {0} under warehouse {1}. Please try changing warehouse.,{1} deposu altındaki Öğe {0} için seri numaraları kullanılamıyor. Lütfen depoyu değiştirmeyi deneyin., +Item Code: {0} is not available under warehouse {1}.,"Ürün Kodu: {0}, {1} deposunda bulunur.", +Serial numbers unavailable for Item {0} under warehouse {1}. Please try changing warehouse.,{1} depolama dosyası Öğesi {0} için seri numaraları kullanılamıyor. Lütfen depoyu değiştirmeyi deneyin., Fetched only {0} available serial numbers.,Yalnızca {0} kullanılabilir seri numarası getirildi., Switch Between Payment Modes,Ödeme Modları Arasında Geçiş Yapın, -Enter {0} amount.,{0} tutarı girin., -You don't have enough points to redeem.,Kullanmak için yeterli puanınız yok., +Enter {0} amount.,{0} hanelerini girin., +You don't have enough points to redeem.,kullanıcık için yeterli puanınız yok., You can redeem upto {0}.,En çok {0} kullanabilirsiniz., -Enter amount to be redeemed.,Kullanılacak tutarı girin., +Enter amount to be redeemed.,Kullanılacak bölümleri giriniz., You cannot redeem more than {0}.,{0} adetten fazlasını kullanamazsınız., Open Form View,Form Görünümünü Aç, -POS invoice {0} created succesfully,POS faturası {0} başarıyla oluşturuldu, -Stock quantity not enough for Item Code: {0} under warehouse {1}. Available quantity {2}.,Stok miktarı Ürün Kodu için yeterli değil: {0} depo altında {1}. Mevcut miktar {2}., +POS invoice {0} created succesfully,POS faturası {0} başarıyla kuruldu, +Stock quantity not enough for Item Code: {0} under warehouse {1}. Available quantity {2}.,Stok miktarı Ürün Kodu için yeterli değil: {1} altında {0} deposu. Mevcut miktar {2}., Serial No: {0} has already been transacted into another POS Invoice.,Seri No: {0} zaten başka bir POS Faturasına dönüştürüldü., Balance Serial No,Denge Seri No, -Warehouse: {0} does not belong to {1},"Depo: {0}, {1} şirketine ait değil", -Please select batches for batched item {0},Lütfen {0} toplu öğe için grupları seçin, +Warehouse: {0} does not belong to {1},"Depo: {0}, {1} yerleşimi ait değil", +Please select batches for batched item {0},Lütfen {0} toplu öğe için gruplar seçin, Please select quantity on row {0},Lütfen {0}. Satırdaki miktarı seçin, Please enter serial numbers for serialized item {0},Lütfen serileştirilmiş öğe {0} için seri numaralarını girin, -Batch {0} already selected.,{0} grubu zaten seçildi., +Batch {0} already selected.,{0} grubu zaten seçilmiş., Please select a warehouse to get available quantities,Lütfen mevcut miktarları almak için bir depo seçin, -"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", +"For transfer from source, selected quantity cannot be greater than available quantity","Kaynaktan transfer için, seçilen miktar mevcut miktar 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ın alma iadesi oluşturmak için varlıkları iptal etmeniz gerekir., +{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2},{0} yaptırımlar. {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ın almayı 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 {}, +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 etmeyen {}, 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 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, +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 dağıtma veya farklı bir hesaptan çalıştırma., +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 hesabı olduğundan emin olun. Hesap açma Borçlu olarak taşıma veya farklı bir hesap seçin., +Row {}: Expense Head changed to {} ,Satır {}: Gider Başlığı {} olarak değiştirilir, 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, +or it is not the default inventory account,veya geniş 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ı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, +because expense is booked against this account in Purchase Receipt {},çünkü Satınalma Makbuzunda bu hesap için giderleri kaldırdı {}, +as no Purchase Receipt is created against Item {}. ,Öğe {} Satın alma deposu Alma Fişi oluşturmadığı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 yerlerde 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 beklemeden için lütfen {} ayarlayın, as {} in {},de olduğu gibi {}, -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", +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 beklemek için lütfen {}, +Mandatory Purchase Receipt,Zorunlu Satınalma Fişi, +POS Profile {} does not belongs to company {},"POS Profili {}, {} işletmesi 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ı {}., Original invoice should be consolidated before or along with the return invoice.,"Orijinal fatura, iade faturasıyla birlikte veya öncesinde konsolide edilmelidir.", -You can add original invoice {} manually to proceed.,Devam etmek için orijinal faturayı {} manuel olarak ekleyebilirsiniz., +You can add original invoice {} manually to proceed.,Devam etmek için orijinal faturayı {} manuel olarak kiralamak., Please ensure {} account is a Balance Sheet account. ,Lütfen {} hesabının bir Bilanço hesabı olduğundan emin olun., -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., +You can change the parent account to a Balance Sheet account or select a different account.,Ana hesabı bir Bilanço hesabı olarak dağıtma veya farklı bir hesaptan çalıştırma., 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 Bağlılık Puanları kullanıldığından {} iptal edilemez. Önce {} Hayır {} 'ı iptal edin, +Change the account type to Receivable or select a different account.,Hesap oluşturma Alacak olarak iletmek 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ı yöneticinin {} iptal etmesi mümkün değil. Önce {} Hayır {} 'ı 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 Closing Entry {} against {} between selected period,Seçilen dönemler arasında {} karşısında POS Kapanış Girişi {}, POS Invoice is {},POS Faturası {}, POS Profile doesn't matches {},POS Profili {} ile eşleşmiyor, POS Invoice is not {},POS Faturası {} değil, POS Invoice isn't created by user {},POS Faturası kullanıcı tarafından oluşturulmaz {}, -Row #{}: {},Kürek çekmek #{}: {}, +Row #{}: {},Kürek çekme #{}: {}, 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", -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 add the account to root level Company - {},Lütfen hesabın kök bölgesindeki Ş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ştururken, {1} ebeveyn hesabı bulunamadı. Lütfen ilgili COA'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ştururken, {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., -Invalid Parent Account,Geçersiz Ebeveyn Hesabı, -"Renaming it is only allowed via parent company {0}, to avoid mismatch.",Uyuşmazlığı önlemek için yeniden adlandırılmasına yalnızca ana şirket {0} aracılığıyla izin verilir., +Invalid Parent Account,Geçersiz Hesabı, +"Renaming it is only allowed via parent company {0}, to avoid mismatch.",Uyuşmazlığı önlemek için yeniden adlandırılmasına yalnızca ana şirket {0} yoluyla izin verilir., "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.", -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.", +"If you {0} {1} worth item {2}, the scheme {3} will be applied on the item.","{0} {1} değerinde öğe {2} yaptırmak, şema {3} öğeye uygulanacaktır.", +"As the field {0} is enabled, the field {1} is mandatory.","{0} alanı etkinleştirildiğinde, {1} alanı sunucuları.", +"As the field {0} is enabled, the value of the field {1} should be more than 1.","{0} alanı etkinleştirildiğinde, {1} bağlantı değeri 1'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 muhafaza etmek için yükümlülüklerinden {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} parça için rezervasyona sahip, yalnızca {0} oda {1} ayrılmış olarak teslim alabilir.", {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", +Row {0}: Subcontracted Item is mandatory for the raw material {1},"Satır {0}: Taşeronluk Öğe {1} hammaddesi 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.", 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 Session overlaps with {0},"Terapi Oturumu, {0} ile sınırlıyor", Therapy Sessions Overlapping,Çakışan Terapi Seansları, Therapy Plans,Tedavi Planları, "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ı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., +Get Items from Material Requests against this Supplier,Bu Tedarikçiye karşın Malzeme Taleplerinden Ürünleri Getir, +Enable European Access,Avrupa Erişimini Etkinleştirin, +Creating Purchase Order ...,Satınalma Siparişi Oluşturuyor ..., +"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 seçenekler 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 verecek.", +Row #{}: You must select {} serial numbers for item {}.,Satır # {}: {} öğe için {} seri numaralarını seçmelisiniz., +qty,Miktar, +Bulk Edit,Toplu Düzenle, +Qualified,Nitelikli, +Unqualified,Niteliksiz, +Qualified By,Yeterlilik Veren, +Qualified on,Yeterlilik Tarihi, +Qualification Status,Yeterlilik Durumu, +Is Template,Şablon mu, +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 Transactions Settings,Stok İşlem Ayarları, +Role Allowed to Over Deliver/Receive,Aşırı Teslim Etmeye/Almaya İzin Verilen Rol, +Reports & Masters,Raporlar ve Masterlar, +Let's Set Up the Assets Module.,Assets Modülünü Kuralım!, +"Assets, Depreciations, Repairs, and more.","Varlıklar, Amortismanlar, Onarımlar ve daha fazlası.", +Review Fixed Asset Accounts,Sabit Kıymet Hesaplarını İnceleyin, +Define Asset Category,Varlık Kategorisini Tanımla, +Create an Asset Item,Bir Varlık Öğesi Oluşturun, +Purchase an Asset,Bir Varlık Satın Alın, +Add an Existing Asset,Mevcut Bir Varlık Ekle, +Settings & Configurations,Ayarlar ve Yapılandırmalar, +Let's Set Up the Selling Module.,Haydi Satış Modülünü Kuralım!, +"Products, Sales, Analysis, and more.","Ürünler, Satış, Analiz ve daha fazlası.", +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ı.", +Track Material Request,Malzeme Talebini Takip et, +Create first Purchase Order,İlk Satınalma Siparişini oluşturun, +Opening & Closing,Açılış & Kapanış, +Connections,Bağlantılar, +Basic Info,Temel Bilgiler, +Desk Settings,Desk Ayarları, +Desk Theme,Desk Teması, +Roles & Permissions,Roller ve İzinler, +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 Ayarlayın, +Create a Product,Bir Ürün Oluşturun, +Create a Supplier,Bir Tedarikçi Oluşturun, +Let's Set Up Your Accounts and Taxes.,Haydi 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ı Gözden geçirin, +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üncelle, +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ı Gözden geçir, +Setup a Warehouse,Bir Depo Ayarla, +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, +Internal Supplier,Dahili Tedarikçi, +Supplier Primary Contact,Tedarikçi Birincil İlgili, +Supplier Primary Address,Tedarikçi Birincil Adresi, +Available Qty For Consumption,Tüketim İçin Kullanılabilir Miktar, +Qty to Be Consumed,Tüketilecek Miktar, +Apply Putaway Rule,Yerleştirme Kuralını Uygula, +Company Shipping Address,Şirket Sevkiyat Adresi, +Shipping Address Template,Sevkiyat Adresi Şablonu, +Company Billing Address,Şirket Fatura Adresi, +Subcontracting Settings,Taşeronluk Ayarları, +Naming Series and Price Defaults,Adlandırma Serisi ve Fiyat Varsayılanları, +Configure the action to stop the transaction or just warn if the same rate is not maintained.,İşlemi durdurmak için eylemi yapılandırın veya aynı oran korunmazsa sadece uyarı verin., +Bill for Rejected Quantity in Purchase Invoice,Alış Faturasında Reddedilen Miktar Faturası, +If checked, Rejected Quantity will be included while making Purchase Invoice from Purchase Receipt.,İşaretlenirse Satınalma İrsaliyesinden Satınalma Faturası yapılırken Reddedilen Miktar dahil edilecektir., +Disable Last Purchase Rate,Son Satınalma Oranını Devre Dışı Bırak, +Role Allowed to Override Stop Action,Durdurma Eylemini Geçersiz kılma izni olan Rol, +"Review Stock Settings\n\nIn ERPNext, the Stock module\u2019s features are configurable as per your business needs. Stock Settings is the place where you can set your preferences for:\n- Default values for Item and Pricing\n- Default valuation method for inventory valuation\n- Set preference for serialization and batching of item\n- Set tolerance for over-receipt and delivery of items","# Stok Ayarlarını İnceleyin\n\nERPNext'te, Stok modülünün\u2019 özellikleri iş ihtiyaçlarınıza göre yapılandırılabilir. Stok Ayarları, şunlar için tercihlerinizi ayarlayabileceğiniz yerdir:\n- Öğe ve Fiyatlandırma için varsayılan değerler\n- Envanter değerlemesi için varsayılan değerleme yöntemi\n- Kalemlerin serileştirilmesi ve gruplandırılması için tercihi ayarlayın\n- Kalemlerin fazla girişi ve teslimatı için toleransı ayarlayın", +Auto close Opportunity Replied after the no. of days mentioned above,Yukarıda belirtilen gün sayısından sonra Yanıtlanan Fırsatı Otomatik Kapat, +Carry Forward Communication and Comments,İletişimi ve Yorumları Devret, +"All the Comments and Emails will be copied from one document to another newly created document(Lead -> Opportunity -> Quotation) throughout the CRM documents.","Tüm Yorumlar ve E-postalar, CRM belgeleri boyunca bir belgeden yeni oluşturulan başka bir belgeye (Yol -> Fırsat -> Teklif) kopyalanacaktır.", +Allow Continuous Material Consumption,Sürekli Malzeme Tüketimi Sağlayın, +Allow material consumptions without immediately manufacturing finished goods against a Work Order,Bir İş Emrine göre bitmiş ürünleri hemen üretmeden malzeme tüketimine izin verin, +Allow material consumptions without immediately manufacturing finished goods against a Work Order,Bir İş Emrine göre bitmiş ürünleri hemen üretmeden malzeme tüketimine izin verin, +Add Corrective Operation Cost in Finished Good Valuation,Mamul Değerlemede Düzeltici Operasyon Maliyetini Ekleyin, +Allow Excess Material Transfer,Fazla Malzeme Aktarımına İzin Ver, +Allow transferring raw materials even after the Required Quantity is fulfilled,Gerekli Miktar yerine getirildikten sonra bile hammadde transferine izin ver, +Make Serial No / Batch from Work Order,İş Emrinden Seri No / Parti Yap, +System will automatically create the serial numbers / batch for the Finished Good on submission of work order,İş emrinin verilmesi ile Mamul için seri numaralarını / partiyi sistem otomatik olarak oluşturacaktır., +"Custom Field, Custom Doctype, Naming Series, Role Permission, Workflow, Print Formats, Reports","Özel Alan, Özel Belge Tipi, Adlandırma Serisi, Rol İzni, İş Akışı, Baskı Formatları, Raporlar", +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, +Sales Partner Target Variance Based On Item Group,Ürün Grubuna göre Satış Ortağı Hedef Sapması, +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ı?, +Set Qty in Transactions Based on Serial No Input,Seri No Girişine Dayalı İşlemlerde Miktarı Ayarla, +Disable Serial No And Batch Selector,Seri No ve Lot Seçiciyi Devre Dışı Bırak, +Create Custom Fields,Özel Alanlar Oluşturun, +Custom Document Types,Özel Belge Türleri, +Setup Naming Series,Adlandırma Serisi Kurulumu, +Setup Approval Workflows,Onay İş Akışları Kurulumu, +Setup Limited Access for a User,Kullanıcı için Sınırlı Erişim Kurulumu, +Items to Order and Receive,Sipariş Edilecek ve Alınacak Ürünler, +Customize Print Formats,Baskı Biçimlerini Özelleştirin, +Generate Custom Reports,Özel Raporlar Oluşturun, +Partly Paid,Kısmen Ödenmiş, +Partly Paid and Discounted,Kısmen Ödenmiş ve İndirimli +Fixed Time,Sabit Süre, +Loan Write Off,Kredi İptali, +Returns,İadeler, +Leads,Adaylar, +Forecasting,Tahmin, +In Location,Konumda, +Disposed,Elden Çıkarıldı, +Additional Info,Ek Bilgi, +Loan Write Off,Kredi İptali, +Prospect,Potansiyel Müşteri, +Workstation Type,İş İstasyonu Türü, +Work Order Consumed Materials,İş Emri Sarf Malzemeleri, +Planned End Date,Planlanan Bitiş Tarihi, +Inventory Settings,Envanter Ayarları, +CRM Settings,CRM Ayarları, +Operations & Materials,Operasyonlar ve Malzemeler, +Scrap & Process Loss,Hurda & İşletme Zararı, +Primary Contact,Birincil İlgili Kişi, +Process Loss,İşletme Zararı, +% Process Loss,% İşletme Zararı, +Contact Mobile,İletişim Cep No, +Cost Center Allocation,Maliyet Merkezi Tahsisi, +Cost Configuration,Maliyet Yapılandırması, +Opportunity Owner,Fırsat Sahibi, +Opportunity Value,Fırsat Değeri, +Opportunity Summary by Sales Stage,Satış Aşamasına göre Fırsat Özeti, +From Opportunity,Bu Fırsattan, +Sales Pipeline Analytics,Satış Süreci Analitiği, +Over Transfer Allowance,Fazla Aktarım Ödeneği, +Quality Inspection Settings,Kalite Kontrol Ayarları, +Action If Quality Inspection Is Rejected,Kalite Muayenesi Reddedilirse Yapılacak İşlem, +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, +Operation time does not depend on quantity to produce,Operasyon süresi üretilecek miktara bağlı değildir, +Set Operating Cost Based On BOM Quantity,BOM Ürün reçetesi miktarına göre Operasyon Maliyetini Belirle, +Allow Lead Duplication based on Emails,E-postaya dayalı Aday Çoğaltmaya İzin ver, +Close Replied Opportunity After Days,Cevaplanan Fırsatı Kapat (gün sonra), +Is Cash or Non Trade Discount,Nakit veya Ticari olmayan İndirim, +Primary Address and Contact,Birincil Adres ve İletişim, +Auto Creation of Contact,Kişinin Otomatik Oluşturulması, +Control Historical Stock Transactions,Geçmiş Stok İşlemlerini Kontrol Et, +You have not entered a value. The field will be set to empty.,Bir değer girmediniz. Alan boş olarak ayarlanacaktır., +No stock transactions can be created or modified before this date.,Bu tarihten önce hisse senedi hareketleri oluşturulamaz veya değiştirilemez., +Role Allowed to Create/Edit Back-dated Transactions,Geriye Dönük İşlemleri Oluşturma / Düzenleme İzni Rolü, +"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.", +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., +"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.", +Loan Write Off will be automatically created on loan closure request if pending amount is below this limit,"Kredi kapatma talebinde, bekleyen tutarın bu limitin altında olması durumunda, Kredi Kapatma talebi otomatik olarak oluşturulur", +"Link that is the website home page. Standard Links (home, login, products, blog, about, contact)","Web sitesi ana sayfası olan bağlantı. Standart Bağlantılar (ana sayfa, giriş, ürünler, blog, hakkında, iletişim)", +Show Language Picker,Dil Seçiciyi Göster, +Login Page,Login / Giriş Sayfası, +App Logo,Uygulama Logosu, +Splash Image,Açılış Görüntüsü, +Account Deletion Settings,Hesap Silme Ayarları, +Auto Account Deletion within (Hours),(Saat) İçerisinde Otomatik Hesap Silme, +Show Account Deletion Link in My Account Page,Hesabım Sayfasında Hesap Silme Bağlantısını Göster, +Footer Details,Altbilgi Ayrıntıları, +Custom Footer,Özel Alt bilgi, +Qty As Per BOM,BOMa göre Mik, +Distribute Manually,Manuel olarak Dağıt, +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, +Production Plan Item Reference,Üretim Planı Öge Referansı, +Include Safety Stock in Required Qty Calculation,Emniyet Stokunu Gerekli Miktar Hesaplamasına Dahil Et, +Calculate Product Bundle Price based on Child Item,Ürün Paketi Fiyatını Alt Öğeye Göre Hesapla, +Customer Defaults,Müşteri Varsayılanları, +Item Price Settings,Ürün Fiyat Ayarları, +Standard Selling,Standart Satış, +Terms Template,Şartlar Şablonu, +Quotation Number,Teklif Numarası, +Min Qty (As Per Stock UOM),Min Mik (Stok birimine göre), +Max Qty (As Per Stock UOM),Max Mik (Stok birimine göre), +Action If Same Rate is Not Maintained,Aynı Oran Sağlanmazsa Yapılacak İşlem, +Calculate Product Bundle Price based on Child Items' Rates,Alt Öğelerin Fiyatlarına Göre Ürün Paketi Fiyatını Hesaplayın, +Transaction Settings,İşlem Ayarları, +Sales Update Frequency in Company and Project,Şirket ve Projede Satış Güncelleme Sıklığı, +Allow Item to be Added Multiple Times in a Transaction,Bir İşlemde Birden Fazla Öğe Eklenmesine İzin Verme, +Enable Discount Accounting for Selling,Satış için İskonto Muhasebesini Etkinleştirin, +"If enabled, additional ledger entries will be made for discounts in a separate Discount Account","Etkinleştirilirse, indirimler için ayrı bir İndirim Hesabında ek defter girişleri yapılır", +Setting the account as a Company Account is necessary for Bank Reconciliation,Hesabın Şirket Hesabı olarak ayarlanması Banka Mutabakatı için gereklidir, +Is Finished Item,Bitmiş Ürün mü, +Is Scrap Item,Hurda Ögesi mi, +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şı 0 adet borç dekontu düzenleyin, +To use Google Indexing, enable Google Settings.,Google Dizine Eklemeyi kullanmak için Google Ayarlarını etkinleştirin., +Show Net Values in Party Account,Cari Hesabındaki Net Değerleri Göster, +Begin typing for results.,Sonuçlar için yazmaya başlayın., +Invoice Portion (%),Fatura Porsiyonu (%), +Discount Settings,İndirim Ayarları, +Payment Terms Status for Sales Order,Satış Siparişi için Ödeme Koşulları Durumu, +Assembly Items,Montaj Öğeleri, +Materials & Operations,Malzemeler ve Operasyonlar, +Sub Assembly Items,Alt Montaj Öğeleri, +Sub Assembly Item Code,Alt Montaj Ürün Kodu, +Manufacturing Type,Üretim Tipi, +Total Operation Time,Toplam Operasyon Süresi, +Time in mins.,Süre (dk), +Plan to Request Qty,Talep Miktarını Planla, +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, +Item Reference,Öğe Referansı, +Bank Reconciliation Tool,Banka Uzlaştırma Aracı, +Sales Order Reference,Satış Siparişi Referansı, +Disbursement Account,Harcama Hesabı, +Repayment Account,Geri Ödeme Hesabı, +Auto Write Off Amount ,Otomatik Kapatma Tutarı, +Contact & Address,İletişim ve Adres, +Ref DocType,Ref Belge Türü, +FG Warehouse,Mamul Deposu, +Tax Detail,Vergi Detayı, +Other Info,Diğer Bilgiler, +Transit Entry,Transit Kaydı, +Show Remarks,Açıklamaları Göster, +Stage,Aşama, +Stock Planning,Stok Planlama, +Stock Closing,Stok Kapanışı, +Stock Validations,Stok Doğrulamaları, +Serial & Batch Item,Seri ve Parti Öğesi, +Picked Qty (in Stock UOM),Toplanan Mik (Stok Birimi), +Inter Transfer Reference,Inter Transfer Referansı, +Update Rate as per Last Purchase,Son Alışa göre Fiyatı Güncelle, +Create Job Card based on Batch Size,Parti Büyüklüğüne göre İş Kartı Oluştur, +Is Corrective Operation,Düzeltici İşlem mi, +Sub Operations,Alt Operasyonlar, +Sales Order Status,Satış Sipariş Durumu, +Order Status,Sipariş Durumu, +Terms & Conditions,Vade & Koşullar, +From Delivery Date,Teslimat Tarihi Baş. , +To Delivery Date,Teslimat Tarihi Bitişi, +Probability,Olasılık, +BOM Info,Ürün Ağacı / BOM Bilgisi, +Closing,Kapanış, +"Header, Robots","Başlık, Robotlar" +Redirects,Yönlendirmeler, +Elements,Elementler, +Operation Section,Operasyon Bölümü, +Scrap Item Code,Hurda Ürün Kodu, +Scrap Item Name,Hurda Ürün Adı, +FG Qty from Transferred Raw Materials,Transfer edilen Hammaddelerden Nihai Ürün Miktarı, +Start Timer,Zamanlayıcıyı Başlat, +Overview,Genel Bakış, +Supplier Invoice,Tedarikçi Faturası, +Supplier Contact,Tedarikçi İrtibat, +Returned Qty ,İade Edilen Mik , +Deal Owner,Anlaşma Sahibi, +Phone Ext.,Dahili Telefon, +Annual Revenue,Yıllık Gelir, +No of Employees,Çalışan Sayısı, +No. of Employees,Personel Sayısı, +Prospect Owner,Potansiyel Sahibi, +Territory Wise Sales,Bölge Bazlı Satışlar, +Amount Eligible for Commission,Komisyona Uygun Tutar, +Unit of Measure (UOM),Ölçü Birimleri, +Grant Commission,Komisyona İzin ver, +Minimum Net Rate,Minimum Net Oran, +Maximum Net Rate,Maximum Net Oran, +Allow Purchase,Satınalmaya izin ver, +Allow Sales,Satışa izin ver, +Fetch Timesheet,Zaman Çizelgesini Getir, +Dispatch Address Name,Sevk Adresi Adı, +Permission Manager,İzin Yöneticisi, +Warehouse Wise Stock Balance,Stok Bakiyesi Depo bazında, +Review Stock Settings,Stok Ayarlarını İnceleyin, +Configure Columns,Kolonları Ayarla, +Column Width,Kolon Genişliği, +Delayed Tasks Summary,Geciken Görevler Özeti, +Add / Remove Columns,Kolon Ekle / Kaldır, +Reset to default,Varsayılana Sıfırla, +Copy error to clipboard,Hatayı panoya kopyala, +Rate of Stock UOM,Stok Birimi Oranı, +Provisional Expense Account,Geçici Gider Hesabı, +Qty in Stock UOM,Stok Biriminde Miktar, +Advance Taxes and Charges,Peşin Ödenen Vergi ve Harçlar, +Taxes and Charges Template,Vergiler ve Harçlar Şablonu, +Default Provisional Account,Varsayılan Geçici Hesap, +Default In-Transit Warehouse,Varsayılan Transit Depo, +Unrealized Profit / Loss Account,Gerçekleşmemiş Kâr / Zarar Hesabı, +Received Qty in Stock UOM,Stok Biriminde Alınan Miktar, +Accepted Qty in Stock UOM,Stok Biriminde Kabul edilen Miktar, +FG based Operating Cost,Mamül bazlı Operasyon Maliyeti, +Update {0} records,{0} Kaydı Güncelle, +Document Linking,Belge Bağlantısı, +Applying Discount,İndirim Uygula, +Recurring Sales Order,Yinelenen Satış Siparişi, +Outgoing (SMTP) Settings,Giden (SMTP) Ayarları, +Incoming (POP/IMAP) Settings,Gelen (POP/IMAP) Ayarları, +Use different Email ID,Farklı E-posta kullan, +System Logs,Sistem Logları, +KSA VAT Setting,KSA KDV Ayarları, +KSA VAT Report,KSA KDV Raporu, +UAE VAT 201,Birleşik Arap Emirlikleri KDV 201, From af629f92f070b69d2968ba6565ef3b200e43ed73 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 15:28:30 +0530 Subject: [PATCH 288/355] test: fix hypothesis tests (backport #34416) (#34418) test: fix hypothesis tests (#34416) (cherry picked from commit b8a61be0809f9d52b0a28ba43330cf6d0fa5eb56) Co-authored-by: Ankush Menat --- erpnext/stock/tests/test_valuation.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/erpnext/stock/tests/test_valuation.py b/erpnext/stock/tests/test_valuation.py index e60c1caac34a..05f153b4a0cd 100644 --- a/erpnext/stock/tests/test_valuation.py +++ b/erpnext/stock/tests/test_valuation.py @@ -132,7 +132,7 @@ def test_fifo_qty_hypothesis(self, stock_queue): total_qty = 0 for qty, rate in stock_queue: - if qty == 0: + if round_off_if_near_zero(qty) == 0: continue if qty > 0: self.queue.add_stock(qty, rate) @@ -154,7 +154,7 @@ def test_fifo_qty_value_nonneg_hypothesis(self, stock_queue): for qty, rate in stock_queue: # don't allow negative stock - if qty == 0 or total_qty + qty < 0 or abs(qty) < 0.1: + if round_off_if_near_zero(qty) == 0 or total_qty + qty < 0 or abs(qty) < 0.1: continue if qty > 0: self.queue.add_stock(qty, rate) @@ -179,7 +179,7 @@ def test_fifo_qty_value_nonneg_hypothesis_with_outgoing_rate(self, stock_queue, for qty, rate in stock_queue: # don't allow negative stock - if qty == 0 or total_qty + qty < 0 or abs(qty) < 0.1: + if round_off_if_near_zero(qty) == 0 or total_qty + qty < 0 or abs(qty) < 0.1: continue if qty > 0: self.queue.add_stock(qty, rate) @@ -282,7 +282,7 @@ def test_lifo_qty_hypothesis(self, stock_stack): total_qty = 0 for qty, rate in stock_stack: - if qty == 0: + if round_off_if_near_zero(qty) == 0: continue if qty > 0: self.stack.add_stock(qty, rate) @@ -304,7 +304,7 @@ def test_lifo_qty_value_nonneg_hypothesis(self, stock_stack): for qty, rate in stock_stack: # don't allow negative stock - if qty == 0 or total_qty + qty < 0 or abs(qty) < 0.1: + if round_off_if_near_zero(qty) == 0 or total_qty + qty < 0 or abs(qty) < 0.1: continue if qty > 0: self.stack.add_stock(qty, rate) From da8cc2bba9af2e0499975f8649232a7006f5bce0 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 18:58:54 +0530 Subject: [PATCH 289/355] fix: Linked invoice cancellation issue via timesheet (#34337) fix: Linked invoice cancellation issue via timesheet (#34337) (cherry picked from commit 4416ddc4afab0ba0ae61421f4c708fbdf4e490fb) Co-authored-by: Deepesh Garg --- erpnext/projects/doctype/timesheet/timesheet.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/projects/doctype/timesheet/timesheet.js b/erpnext/projects/doctype/timesheet/timesheet.js index a376bf46a5bd..d1d07a79d678 100644 --- a/erpnext/projects/doctype/timesheet/timesheet.js +++ b/erpnext/projects/doctype/timesheet/timesheet.js @@ -5,6 +5,8 @@ frappe.ui.form.on("Timesheet", { setup: function(frm) { frappe.require("/assets/erpnext/js/projects/timer.js"); + frm.ignore_doctypes_on_cancel_all = ['Sales Invoice']; + frm.fields_dict.employee.get_query = function() { return { filters:{ From b6d059ccb82c7798b6622eb689885dab884cb671 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Mon, 13 Mar 2023 19:43:26 +0530 Subject: [PATCH 290/355] Revert "Update tr.csv (backport #34285)" (#34427) Revert "Update tr.csv (#34285)" This reverts commit 5266a7e8a75f00b53b7587ede181f7c2e7f3ee3c. --- erpnext/translations/tr.csv | 8776 +++++++++++++++++------------------ 1 file changed, 4242 insertions(+), 4534 deletions(-) diff --git a/erpnext/translations/tr.csv b/erpnext/translations/tr.csv index 3fade8988925..b65494ce32b0 100644 --- a/erpnext/translations/tr.csv +++ b/erpnext/translations/tr.csv @@ -24,66 +24,66 @@ A question must have more than one options,Bir sorunun birden fazla seçeneği o A qustion must have at least one correct options,Bir soru en az bir doğru seçeneğe sahip olmalıdır, A {0} exists between {1} and {2} (,{1} ve {2} arasında bir {0} var (, A4,A4, -API Endpoint,API Endpoint, -API Key,API Key, +API Endpoint,API Bitiş Noktası, +API Key,API Anahtarı, Abbr can not be blank or space,Kısaltma boş veya boşluktan oluşamaz, Abbreviation already used for another company,Kısaltma zaten başka bir şirket için kullanılıyor, -Abbreviation cannot have more than 5 characters,Kısaltma 5 karakterden fazlası olamaz., +Abbreviation cannot have more than 5 characters,Kısaltma 5 karakterden fazla olamaz., Abbreviation is mandatory,Kısaltma zorunludur, About the Company,Şirket hakkında, About your company,Şirketiniz hakkında, -Above,Yukarıdaki, +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 Number,Hesap Numarası, -Account Number {0} already used in account {1},{1} hesapta {0} hesap numarası zaten sınırları, -Account Pay Only,Sadece Ödeme Hesabı, -Account Type,Hesap Türü, +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 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ı durumuna çevrilemez., +"Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'",Bakiye borçlu durumdaysa alacaklı duruma çevrilemez., Account number for account {0} is not available.
Please setup your Chart of Accounts correctly.,Hesap {0} için hesap numarası mevcut değil.
Lütfen Hesap Tablonuzu doğru ayarlayın., Account with child nodes cannot be converted to ledger,Alt hesapları bulunan hesaplar muhasebe defterine dönüştürülemez., Account with child nodes cannot be set as ledger,Alt düğümleri olan hesaplar Hesap Defteri olarak ayarlanamaz, -Account with existing transaction can not be converted to group.,İşlem görmüş hesap kartları dönüştürülemez., +Account with existing transaction can not be converted to group.,İşlem görmüş hesaplar gruba dönüştürülemez., Account with existing transaction can not be deleted,İşlem görmüş hesaplar silinemez., Account with existing transaction cannot be converted to ledger,İşlem görmüş hesaplar muhasebe defterine dönüştürülemez., Account {0} does not belong to company: {1},Hesap {0} Şirkete ait değil: {1}, Account {0} does not belongs to company {1},Hesap {0} yapan şirkete ait değil {1}, Account {0} does not exist,Hesap {0} yok, Account {0} does not exists,Hesap {0} yok, -Account {0} does not match with Company {1} in Mode of Account: {2},"Hesap {0}, hesap modunda {1} şirketi ile eşleşmez: {2}", +Account {0} does not match with Company {1} in Mode of Account: {2},"Hesap {0}, Şirket {1} Hesap Modu'yla eşleşmiyor: {2}", Account {0} has been entered multiple times,Hesap {0} birden çok kez girilmiş, -Account {0} is added in the child company {1},{1} alt barındırma {0} hesabı eklendi, +Account {0} is added in the child company {1},{1} alt şirketine {0} hesabı eklendi, Account {0} is frozen,Hesap {0} donduruldu, -Account {0} is invalid. Account Currency must be {1},Hesap {0} geçersiz. Hesap Para Birimi olmalıdır {1}, +Account {0} is invalid. Account Currency must be {1},Hesap {0} geçersiz. Hesap Para olmalıdır {1}, Account {0}: Parent account {1} can not be a ledger,Hesap {0}: Ana hesap {1} bir defter olamaz, Account {0}: Parent account {1} does not belong to company: {2},Hesap {0}: Ana hesap {1} şirkete ait değil: {2}, Account {0}: Parent account {1} does not exist,Hesap {0}: Ana hesap {1} yok, -Account {0}: You can not assign itself as parent account,Hesap {0}: üretken bir ana hesap olarak atayamazsınız, +Account {0}: You can not assign itself as parent account,Hesap {0}: Kendisini bir ana hesap olarak atayamazsınız, Account: {0} can only be updated via Stock Transactions,Hesap: {0} sadece Stok İşlemleri üzerinden güncellenebilir, Account: {0} with currency: {1} can not be selected,Hesap: {0} para ile: {1} seçilemez, Accountant,Muhasebeci, Accounting,Muhasebe, -Accounting Entry for Asset,Varlık Muhasebe Kaydı, -Accounting Entry for Stock,Stok Muhasebe Kaydı, -Accounting Entry for {0}: {1} can only be made in currency: {2},{1} sadece para için yapılabilir: {0} Muhasebe Kayıt {2}, -Accounting Ledger,muhasebe defteri, -Accounting journal entries.,Muhasebe yevmiye kayıtları., +Accounting Entry for Asset,Varlıklar için Muhasebe Girişi, +Accounting Entry for Stock,Stokta Muhasebe Giriş, +Accounting Entry for {0}: {1} can only be made in currency: {2},{1} sadece para yapılabilir: {0} Muhasebe Kayıt {2}, +Accounting Ledger,Muhasebe defteri, +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,48 +91,48 @@ Accumulated Depreciation Amount,Birikmiş Amortisman Tutarı, 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'nde Birikmiş Değerler, Achieved ({}),Elde Edildi ({}), -Action,İşlem, -Action Initialised,İşlem Başlatıldı, -Actions,İşlemler, -Active,Aktif, -Activity Cost exists for Employee {0} against Activity Type - {1},Çalışan {0} için Faaliyet Türü - {1} karşılığında Faaliyet Maliyeti var, -Activity Cost per Employee,Çalışan Başına Faaliyet Maliyeti, +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 Dilimi 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 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üşterileri portalınıza ilave ederek, bunları kişilerden ekleyerek de ekleyebilirsiniz.", -Add to Details,Ayrıntılara Ekle, -Add/Remove Recipients,Alıcıları Ekle/Kaldır, +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/Remove Recipients,Alıcı Ekle/Kaldır, Added,Eklendi, Added to details,Ayrıntılara eklendi, Added {0} users,{0} kullanıcı eklendi, @@ -142,13 +142,13 @@ Address Line 2,Adres Satırı 2, 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, Admission and Enrollment,Kabul ve Kayıt, Admissions for {0},{0} için kabul, -Admit,Başvur, +Admit,Kabul et, Admitted,Başvuruldu, Advance Amount,Avans Tutarı, Advance Payments,Avans Ödemeleri, @@ -157,12 +157,12 @@ Advance amount cannot be greater than {0} {1},Peşin miktar daha büyük olamaz 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ığı, -Against Voucher,Fiş Karşılığı, -Against Voucher Type,Fiş Tipi Karşılığı, +Against Voucher,Dekont karşılığı, +Against Voucher Type,Dekont Tipi karşılığı, Age,Yaş, Age (Days),Yaş (Gün), Ageing Based On,Yaşlandırma Temeli, @@ -172,70 +172,70 @@ Ageing Range 3,Yaşlanma aralığı 3, Agriculture,Tarım, Agriculture (beta),Tarım (beta), Airline,Havayolu, -All Accounts,Tüm Hesaplar, -All Addresses.,Tüm Adresler, -All Assessment Groups,Tüm Değerlendirme Grupları, -All BOMs,Tüm Ürün Ağaçları, -All Contacts.,Tüm Kişiler, -All Customer Groups,Tüm Müşteri Grupları, -All Day,Tüm Gün, -All Departments,Tüm Departmanlar, +All Accounts,Bütün hesaplar, +All Addresses.,Tüm adresler., +All Assessment Groups,Bütün Değerlendirme Grupları, +All BOMs,Tüm malzeme listeleri, +All Contacts.,Tüm Kişiler., +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,Tüm ürünler, +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 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 Tutar, -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, Alternative item must not be same as item code,"Alternatif öğe, ürün koduyla aynı olmamalıdır", Amended From,İtibaren değiştirilmiş, Amount,Tutar, -Amount After Depreciation,Değer kaybı sonrası 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'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} yani {1} {3}, +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}, -Amt,Tutar, -"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 etiketine bakın", -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ştirin ve tekrar deneyin., +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 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 grubunu veya çıldırtıcı etiketini", -Analyst,Analist, +"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 Billing: {0},Yıllık Fatura: {0}, -Annual Salary,Yıllık Maaş, +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}' karşı bir başka bütçe kitabı '{0}' zaten var ve {4} mali yılı için '{3}' hesap var, +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 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 pozisyonu ile var, +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, Apparel & Accessories,Giyim ve Aksesuar, -Applicable For,Uygulanabilir:, +Applicable For,İçin uygulanabilir, "Applicable if the company is SpA, SApA or SRL","Şirket SpA, SApA veya SRL ise uygulanabilir", -Applicable if the company is a limited liability company,Şirket limited şirketi ise uygulanabilir, +Applicable if the company is a limited liability company,Şirket limited şirket ise uygulanabilir, Applicable if the company is an Individual or a Proprietorship,Şirket Birey veya Mülkiyet ise uygulanabilir, -Applicant,Başvuru Sahibi, +Applicant,Başvuru sahibi, Applicant Type,Başvuru Sahibi Türü, -Application of Funds (Assets),fon (varlık) çalışması, -Application period cannot be across two allocation records,Başvuru süresi iki ödenek boyunca kaydırılamaz, +Application of Funds (Assets),Fon (varlık) başvurusu, +Application period cannot be across two allocation records,Başvuru süresi iki tahsis kaydı boyunca olamaz, Application period cannot be outside leave allocation period,Uygulama süresi dışında izin tahsisi dönemi olamaz, Applied,Başvuruldu, Apply Now,Şimdi Başvur, @@ -245,35 +245,35 @@ Appointment Type,Randevu Türü, Appointment {0} and Sales Invoice {1} cancelled,Randevu {0} ve Satış Faturası {1} iptal edildi, Appointments and Encounters,Randevular ve Karşılaşmalar, Appointments and Patient Encounters,Randevular ve Hasta Buluşmaları, -Appraisal {0} created for Employee {1} in the given date range,Verilen aralıkta çalışan {1} için çalıştırılan değerlendirme {0}, +Appraisal {0} created for Employee {1} in the given date range,Verilen aralıkta Çalışan {1} için oluşturulan değerlendirme {0}, Apprentice,Çırak, Approval Status,Onay Durumu, Approval Status must be 'Approved' or 'Rejected',Onay Durumu 'Onaylandı' veya 'Reddedildi' olmalıdır, Approve,Onayla, -Approving Role cannot be same as role the rule is Applicable To,Onaylayan Rol kuralın geçerli olduğu rolle aynı olamaz, -Approving User cannot be same as user the rule is Applicable To,Onaylayan Kullanıcı kuralın Uygulandığı Kullanıcı ile aynı olamaz, -"Apps using current key won't be able to access, are you sure?","Geçerli anahtarı kullanan uygulamalar erişemeyecek, emin misiniz??", +Approving Role cannot be same as role the rule is Applicable To,Onaylama Rolü kuralın uygulanabilir olduğu rolle aynı olamaz, +Approving User cannot be same as user the rule is Applicable To,Onaylayan Kullanıcı kuralın uygulanabilir olduğu kullanıcı ile aynı olamaz, +"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,Borç/Bakiye, -As Examiner,Denetmen olarak, +Arrear,bakiye, +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ı yönetmeliği, -As per section 17(5),Bölüm 17'ye göre (5), +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 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 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., Asset,Varlık, Asset Category,Varlık Kategorisi, -Asset Category is mandatory for Fixed Asset item,Sabit Kıymet için Varlık Kategorisi zorunludur, +Asset Category is mandatory for Fixed Asset item,Sabit Varlık için Varlık Kategorisi zorunludur, Asset Maintenance,Varlık Bakımı, Asset Movement,Varlık Hareketi, Asset Movement record {0} created,Varlık Hareket kaydı {0} oluşturuldu, @@ -281,25 +281,25 @@ Asset Name,Varlık Adı, 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, +Assign to Employees,Çalışanlara ata, +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, @@ -317,22 +317,22 @@ Auto Repeat,Otomatik Tekrarla, 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, @@ -345,89 +345,89 @@ Balance (Dr - Cr),Denge (Dr - Cr), 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, -Bank/Cash transactions against party or for internal transfer,Cariye karşı veya iç transfer için Banka / Kasa işlemleri, -Banking,Banka İşlemleri, -Banking and Payments,Banka İşlemleri ve Ödemeler, +Bank/Cash transactions against party or for internal transfer,partiye karşı veya dahili transfer için Banka / Para Çekme işlemleri, +Banking,Bankacılık, +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,Temel, +Base,baz, Base URL,Temel URL, -Based On,Buna göre, -Based On Payment Terms,Ödeme Vadesine göre, +Based On,Göre, +Based On Payment Terms,Ödeme Koşullarına Göre, Basic,Temel, -Batch,Parti (Batch), -Batch Entries,Parti Girişleri, -Batch ID is mandatory,Parti Numarası zorunludur, +Batch,yığın, +Batch Entries,Toplu Girişler, +Batch ID is mandatory,Parti numarası zorunludur, Batch Inventory,Parti Envanteri, Batch Name,Parti Adı, Batch No,Parti No, 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): , +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, -Billing currency must be equal to either default company's currency or party account currency,"Faturalandırma para birimi, varsayılan şirketin para birimi veya Cari hesabı para birimine eşit olmalıdır", +Billing currency must be equal to either default company's currency or party account currency,"Faturalandırma para birimi, varsayılan şirketin para birimi veya parti hesabı para birimine eşit olmalıdır", Bills raised by Suppliers.,Tedarikçiler tarafından artırılan faturalar, Bills raised to Customers.,Müşterilere artırılan faturalar, 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 Amount,Alış Tutarı, -Buying Price List,Alış Fiyat Listesi, -Buying Rate,Alış Fiyatı, -"Buying must be checked, if Applicable For is selected as {0}","Eğer uygulanabilir {0} olarak seçilirse, alım kontrolü yapılmalıdır.", +Buying,Satın alma, +Buying Amount,Alım Miktarı, +Buying Price List,Alış Fiyatı Listesi, +Buying Rate,Alış oranı, +"Buying must be checked, if Applicable For is selected as {0}","Eğer Uygulanabilir {0} olarak seçilirse, alım kontrol edilmelidir.", By {0},{0} tarafından, -Bypass credit check at Sales Order ,Satış siparişinde kredi kontrolünü atla , +Bypass credit check at Sales Order ,Satış Siparişinde kredi kontrolünü atla, C-Form records,C-Form kayıtları, C-form is not applicable for Invoice: {0},C-Formu bu fatura için uygulanamaz: {0}, CEO,CEO, @@ -435,62 +435,62 @@ CESS Amount,CESS Tutarı, CGST Amount,CGST Tutarı, CRM,CRM, CWIP Account,CWIP Hesabı, -Calculated Bank Statement balance,Hesaplanan Banka Hesap Bakiyesi, +Calculated Bank Statement balance,Hesaplanan Banka Hesap bakiyesi, Calls,Aramalar, Campaign,Kampanya, -Can be approved by {0},{0} tarafından onaylandı, -"Can not filter based on Account, if grouped by Account","Hesap, olarak gruplandırıldı ise Hesaba tabanlı yönetim yönetimi", -"Can not filter based on Voucher No, if grouped by Voucher","Dekont, olarak gruplandırıldıysa, Makbuz numarasına dayalı yönetim yönetimi", +Can be approved by {0},{0} tarafından onaylanmış, +"Can not filter based on Account, if grouped by Account","Hesap, olarak gruplandırıldı ise Hesaba dayalı filtreleme yapamaz", +"Can not filter based on Voucher No, if grouped by Voucher","Dekont, olarak gruplandırıldı ise Makbuz numarasına dayalı filtreleme yapamaz", "Can not mark Inpatient Record Discharged, there are Unbilled Invoices {0}","Yatan Kayıt Deşarjı işaretlenemiyor, Faturalandırılmamış Faturalar var {0}", -Can only make payment against unbilled {0},Sadece karşı ödeme yapamazsınız faturalanmamış {0}, -Can refer row only if the charge type is 'On Previous Row Amount' or 'Previous Row Total',Eğer ücret tipi 'Önceki Satır Tutarında' veya 'Önceki Satır Toplamı' ise referans verebilir, -"Can't change valuation method, as there are transactions against some items which does not have it's own valuation method",Kendi değerleme yöntemine sahip olmayan bazı ürünlere karşı işlemler olduğu için değerleme kullanımı değiştiremezsiniz, -Can't create standard criteria. Please rename the criteria,Standart ölçüler oluşturulamıyor. Lütfen ölçütleri yeniden tanımlayanın, +Can only make payment against unbilled {0},Sadece karşı ödeme yapabilirsiniz faturalanmamış {0}, +Can refer row only if the charge type is 'On Previous Row Amount' or 'Previous Row Total',Eğer ücret biçimi 'Önceki Ham Miktar' veya 'Önceki Ham Totk' ise referans verebilir, +"Can't change valuation method, as there are transactions against some items which does not have it's own valuation method",Kendi değerleme yöntemine sahip olmayan bazı ürünlere karşı işlemler olduğu için değerleme yöntemini değiştiremezsiniz, +Can't create standard criteria. Please rename the criteria,Standart ölçütler oluşturulamıyor. Lütfen ölçütleri yeniden adlandırın, Cancel,İptal, -Cancel Material Visit {0} before cancelling this Warranty Claim,Malzeme ziyareti {0} Bu Garanti Talebi iptal edilmeden önce iptal, +Cancel Material Visit {0} before cancelling this Warranty Claim,Malzeme ziyaret {0} Bu Garanti Talep iptal etmeden önce iptal, Cancel Material Visits {0} before cancelling this Maintenance Visit,Bu Bakım Ziyaretini iptal etmeden önce Malzeme Ziyareti {0} iptal edin, Cancel Subscription,Aboneliği iptal et, -Cancel the journal entry {0} first,Önce {0} yevmiye kaydını iptal et, +Cancel the journal entry {0} first,Önce {0} günlük girişini iptal et, Canceled,İptal edildi, -"Cannot Submit, Employees left to mark attendance","Gönderilemiyor, çalışanlar katılmak için ayrılmış", -Cannot be a fixed asset item as Stock Ledger is created.,Stok Defteri oluşturulduğu sabit bir varlık kalemi olamaz., +"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,Sunulan Stok Giriş {0} varolduğundan iptal edilemiyor, -Cannot cancel transaction for Completed Work Order.,Tamamlanmış İş Emri için işlemi iptal edemez., +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 senetlerini oluşturduktan sonra değiştiremezsiniz. Yeni Bir Öğe Yapın ve Stokları Yeni Öğe Taşı, +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şı, Cannot change Fiscal Year Start Date and Fiscal Year End Date once the Fiscal Year is saved.,Mali Yıl Başlangıç Tarihi ve Mali Yılı kaydedildikten sonra Mali Yıl Sonu Tarihi değiştiremezsiniz., -Cannot change Service Stop Date for item in row {0},{0} satır satırdaki öğe için Hizmet Durdurma Tarihi değiştirilemez, -Cannot change Variant properties after stock transaction. You will have to make a new Item to do this.,Stok yapıldıktan sonra Varyant özellikleri değiştirilemez. Bunu yapmak için yeni bir öğe almanız gerekir., -"Cannot change company's default currency, because there are existing transactions. Transactions must be cancelled to change the default currency.","Mevcut işletimlerinden, genel genel para birimini değiştiremezsiniz. İşlemler Varsayılan para birimini değiştirmek için iptal edilmelidir.", -Cannot change status as student {0} is linked with student application {1},öğrenci olarak değiştirilemez {0} öğrenci uygulaması ile bağlantılı {1}, -Cannot convert Cost Center to ledger as it has child nodes,Çocuk düğümleri nedeniyle Maliyet Merkezi ana deftere dönüştürülemez, -Cannot covert to Group because Account Type is selected.,Hesap Türü görünümünden Grup gizli olamaz., -Cannot create Retention Bonus for left Employees,Sol çalışanlar için Tutma Bonusu oluşturamıyor, -Cannot create a Delivery Trip from Draft documents.,Taslak belgelerden Teslimat Gezisi oluşturulamaz., -Cannot deactivate or cancel BOM as it is linked with other BOMs,Devre dışı hizmet 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ıldığı için ilan edilemez., +Cannot change Service Stop Date for item in row {0},{0} numaralı satırdaki öğe için Hizmet Durdurma Tarihi değiştirilemez, +Cannot change Variant properties after stock transaction. You will have to make a new Item to do this.,Stok işleminden sonra Varyant özellikleri değiştirilemez. Bunu yapmak için yeni bir öğe yapmanız gerekecek., +"Cannot change company's default currency, because there are existing transactions. Transactions must be cancelled to change the default currency.","Mevcut işlemler olduğundan, şirketin varsayılan para birimini değiştiremezsiniz. İşlemler Varsayılan para birimini değiştirmek için iptal edilmelidir.", +Cannot change status as student {0} is linked with student application {1},öğrenci olarak durumunu değiştirmek olamaz {0} öğrenci uygulaması ile bağlantılı {1}, +Cannot convert Cost Center to ledger as it has child nodes,Çocuk nodları olduğundan Maliyet Merkezi ana deftere dönüştürülemez, +Cannot covert to Group because Account Type is selected.,Hesap Türü seçili olduğundan Grup gizli olamaz., +Cannot create Retention Bonus for left Employees,Sol Çalışanlar için Tutma Bonusu oluşturulamıyor, +Cannot create a Delivery Trip from Draft documents.,Taslak dokümanlardan Teslimat Gezisi oluşturulamaz., +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 'Değerlendirme ve Toplam' için olduğunda düşülemez, -"Cannot delete Serial No {0}, as it is used in stock transactions","Silinemiyor Seri No {0}, hisse senedi işlemleri kullanılıyor gibi", -Cannot enroll more than {0} students for this student group.,Bu öğrenci grubu için {0} gelen göre daha fazla kayıt olamaz., +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 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, Cannot produce more Item {0} than Sales Order quantity {1},Satış Sipariş Miktarı {1} den fazla Ürün {0} üretilemez, -Cannot promote Employee with status Left,Çalışan durumu sata tanıtılamaz, -Cannot refer row number greater than or equal to current row number for this Charge type,Kolon sırası bu Ücret tipi için kolon numarasından büyük veya eşit olamaz, -Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for first row,İlk satır için ücret tipi 'Önceki satırları kullanır' veya 'Önceki satır toplamında' olarak seçilemez, -Cannot set as Lost as Sales Order is made.,Satış Siparişi verildiği için Kayıp olarak ayarlanamaz., -Cannot set authorization on basis of Discount for {0},{0} için İndirim bazında yetkilendirme ayarlanamıyor, +Cannot promote Employee with status Left,Çalışan durumu solda tanıtılamaz, +Cannot refer row number greater than or equal to current row number for this Charge type,Kolon numarası bu Ücret tipi için kolon numarasından büyük veya eşit olamaz, +Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for first row,İlk satır için ücret tipi 'Önceki satır tutarında' veya 'Önceki satır toplamında' olarak seçilemez, +Cannot set as Lost as Sales Order is made.,Satış Emri yapıldığında Kayıp olarak ayarlanamaz., +Cannot set authorization on basis of Discount for {0},{0} için indirim temelinde yetki ayarlanamaz, Cannot set multiple Item Defaults for a company.,Bir şirket için birden fazla Öğe Varsayılanı belirlenemiyor., Cannot set quantity less than delivered quantity,Teslim edilen miktardan daha az miktar belirlenemiyor, Cannot set quantity less than received quantity,Alınan miktardan daha az miktar ayarlanamaz, Cannot set the field {0} for copying in variants,Değişkenlere kopyalamak için {0} alanı ayarlanamıyor, Cannot transfer Employee with status Left,Çalışan durumu Sola aktarılamıyor, -Cannot {0} {1} {2} without any negative outstanding invoice,{0} {1} {2} olmadan herhangi bir olumsuz ödenmemiş fatura Can, +Cannot {0} {1} {2} without any negative outstanding invoice,değil {0} {1} {2} olmadan herhangi bir olumsuz ödenmemiş fatura Can, Capital Equipments,Sermaye Ekipmanları, -Capital Stock,Öz Sermaye, -Capital Work in Progress,Sermaye Yarı Mamul, +Capital Stock,Öz sermaye, +Capital Work in Progress,Devam Eden Sermaye Çalışması, Cart,Araba, -Cart is Empty,Sepet boş, +Cart is Empty,Sepet Boş, Case No(s) already in use. Try from Case No {0},Konu Numarası/numaraları zaten kullanımda. Konu No {0} olarak deneyin., Cash,Nakit, Cash Flow Statement,Nakit Akım Tablosu, @@ -498,75 +498,75 @@ Cash Flow from Financing,Finansman Nakit Akışı, Cash Flow from Investing,Yatırım Nakit Akışı, Cash Flow from Operations,Faaliyetlerden Nakit Akışı, Cash In Hand,Eldeki Nakit, -Cash or Bank Account is mandatory for making payment entry,Kasa veya Banka Hesabı ödeme kaydı yapmak için zorunludur, +Cash or Bank Account is mandatory for making payment entry,Kasa veya Banka Hesabı ödeme girişi yapmak için zorunludur, Cashier Closing,Kasiyer Kapanışı, Casual Leave,Mazeret İzni, 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 Tutarı, +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, -Charges are updated in Purchase Receipt against each item,Masraflar her kalem için Satınalma Fişinde güncellenir, -"Charges will be distributed proportionately based on item qty or amount, as per your selection","Masraflar, seçiminize göre ürün miktarına veya tutarına göre orantılı olarak dağıtılacaktır.", +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 et, -Checkout,Çıkış yap, +Check all,Tümünü kontrol, +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ış temizlendi, -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., +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 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'u kapat, Closed,Kapalı, -Closed order cannot be cancelled. Unclose to cancel.,Kapalı sipariş iptal edilemez. İptal etmek için açın., -Closing (Cr),Kapanış (Alacak), -Closing (Dr),Kapanış (Borç), +Closed order cannot be cancelled. Unclose to cancel.,Kapalı sipariş iptal edilemez. iptal etmek için açıklamak., +Closing (Cr),Kapanış (Cr), +Closing (Dr),Kapanış (Dr), Closing (Opening + Total),Kapanış (Açılış + Toplam), -Closing Account {0} must be of type Liability / Equity,Kapanış Hesabı {0}, Borç / Özkaynak türünde olmalıdır, +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'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, @@ -576,176 +576,176 @@ Company name not same,Şirket adı aynı değil, 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'u ERPNext ile bağlayın, +Connect Shopify with ERPNext,ERPNext ile Shopify'ı bağlayın, +Connect to Quickbooks,Quickbooks'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'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 %,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, Cost Center Number,Maliyet Merkezi Numarası, Cost Center and Budgeting,Maliyet Merkezi ve Bütçeleme, Cost Center is required in row {0} in Taxes table for type {1},Satır {0} da Vergiler Tablosunda tip {1} için Maliyet Merkezi gereklidir, -Cost Center with existing transactions can not be converted to group,Mevcut işlemleri olan Masraf Merkezi gruba çevrilemez, -Cost Center with existing transactions can not be converted to ledger,Mevcut işlemleri olan Masraf Merkezi gruba çevrilemez, +Cost Center with existing transactions can not be converted to group,Maliyet Merkezi mevcut işlemlere gruba dönüştürülemez, +Cost Center with existing transactions can not be converted to ledger,Maliyet Merkezi mevcut işlemlere ana deftere dönüştürülemez, Cost Centers,Maliyet Merkezleri, -Cost Updated,Maliyet Güncellendi, +Cost Updated,Maliyet Güncelleme, Cost as on,olarak Maliyet, -Cost of Delivered Items,Teslim edilen Ürün Maliyeti, -Cost of Goods Sold,Satılan Malın Maliyeti, -Cost of Issued Items,Verilen Ürün Maliyeti, -Cost of New Purchase,Yeni Alış Maliyeti, -Cost of Purchased Items,Satılan Ürün Maliyeti, -Cost of Scrapped Asset,Hurdaya Çıkarılan Varlık Maliyeti, -Cost of Sold Asset,Satılan Varlık 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' olasılığın işaretini kaldırmayı ve tekrar göndermeyi", +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ı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 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 mevcut olduğundan emin olun., -Could not solve weighted score function. Make sure the formula is valid.,Ağırlıklı skorları çözemedim. Formülün mevcut olduğundan emin olun., -Could not submit some Salary Slips,Bazı Maaş Balıkları gönderilemedi, -"Could not update stock, invoice contains drop shipping item.","Stok güncellemesi yapılamaz, faturanın damla nakliye öğesini içerir.", +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., +Could not solve weighted score function. Make sure the formula is valid.,Ağırlıklı skor fonksiyonunu çözemedim. Formülün geçerli olduğundan emin olun., +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 Schedule,Kurs programı, +Course: ,Ders:, +Cr,Cr, Create,Oluştur, Create BOM,Malzeme Listesi Oluştur, -Create Delivery Trip,Teslimat Yolculuğu 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 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 Delivery Trip,Teslimat Gezisi 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,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,Çalışmanızı planlamanıza ve zamanında teslim etmenize yardımcı olacak Satış Siparişlerini Oluştur, -Create Sample Retention Stock Entry,Numune Saklama Stok Hareketi 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ştur, -Create Supplier Quotation,Tedarikçi Teklifi Oluştur, +Create Student Groups,Öğrenci Grupları Oluşturma, +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 özetlerini oluşturun.", -Create customer quotes,Müşteri Teklifi 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 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 Verildi, -Credit Note {0} has been created automatically,Kredi Notu {0} otomatik olarak kurulmuştur, +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, +Criteria weights must add up to 100%,Ölçüt ağırlıkları% 100'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 kayboldu sonra değiştirilemez, +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, Currency exchange rate master.,Ana Döviz Kuru., -Currency for {0} must be {1},Döviz {0} için {1} olmalıdır, +Currency for {0} must be {1},Döviz {0} olmalıdır için {1}, Currency is required for Price List {0},Döviz Fiyat Listesi için gereklidir {0}, -Currency of the Closing Account must be {0},Kapanış Hesap Dövizi olmalıdır {0}, -Currency of the price list {0} must be {1} or {2},{0} fiyat listesi para birimi {1} veya {2} olmalıdır., +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,Geçerli, +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,Güncel İş Olanakları, -Current Liabilities,Cari Borçlar/Pasif, -Current Qty,Güncel Mik, +Current Liabilities,Kısa Vadeli Borçlar, +Current Qty,Güncel Adet, Current invoice {0} is missing,Şu fatura {0} eksik, Custom HTML,Özel HTML, -Custom?,Özel mi?, +Custom?,Özel?, Customer,Müşteri, -Customer Addresses And Contacts,Müşteri Adresleri ve İrtibatları, +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 Database.,Müşteri veritabanı., +Customer Group,müşteri grubu, Customer LPO,Müşteri LPO'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 dahil, -Customer isn't enrolled in any Loyalty Program,Müşteri kaydı bir Sadakat Programına kayıtlı değil, -Customer required for 'Customerwise Discount','Müşteri indirimi' için olması gereken müşteri, +Customer is required,Müşteri gereklidir, +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} kaydedildi., -Customers in Queue,Kuyruk Müşterileri, +Customer {0} is created.,Müşteri {0} oluşturuldu., +Customers in Queue,Kuyruk Müşteriler, Customize Homepage Sections,Ana Sayfa Bölümlerini Özelleştir, Customizing Forms,Özelleştirme Formları, Daily Project Summary for {0},{0} Günlük Proje Özeti, @@ -754,179 +754,179 @@ Daily Work Summary,Günlük Çalışma Özeti, 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 depolama birimleri., +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 ulaşım hatları büyük olmalıdır, +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, -Date of Birth,Doğum Tarihi, -Date of Birth cannot be greater than today.,Tarihi doğum gerçeklerinden daha büyük olamaz., -Date of Commencement should be greater than Date of Incorporation,Başlangıç tarihi kuruluşunun daha büyük olması gerekir., +Date of Birth,Doğum tarihi, +Date of Birth cannot be greater than today.,Doğum Tarihi bugünkünden daha büyük olamaz., +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,işlem 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ç Dekontu Tutarı, -Debit Note Issued,Borç Dekontu Düzenlendi, -Debit To is required,Borçlanma yeri gerekli, +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, -Default Activity Cost exists for Activity Type - {0},Standart Etkinliği Maliyet Faaliyet Türü için var - {0}, +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,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) yapıldığı için Öğ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 gerekir., -Default Unit of Measure for Variant '{0}' must be same as in Template '{1}',Varyant için Ölçü Varsayılan Birim '{0}' Şablon aynı olmalıdır '{1}', +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 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ınalma alımları için varsayılan vergi şablonları ayrılır., +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., Defaults,Standart Değerler, Defense,Savunma, -Define Project type.,Proje çıkarmayı tanımlayın., +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,Del, Delay in payment (Days),Ödeme Gecikme (Gün), Delete all the Transactions for this Company,Bu şirket için bütün İşlemleri sil, Deletion is not permitted for country {0},{0} ülke için silme işlemine izin verilmiyor, -Delivered,Teslim edildi, -Delivered Amount,Teslimat Tutarı, +Delivered,Teslim Edildi, +Delivered Amount,Teslim Tutar, Delivered Qty,Teslim Edilen Miktar, -Delivered: {0},Teslim edilen: {0}, -Delivery,Teslimat, -Delivery Date,Teslimat Tarihi, -Delivery Note,Satış İrsaliyesi, -Delivery Note {0} is not submitted,Satış İrsaliyesi {0} teslim edilmedi, -Delivery Note {0} must not be submitted,Satış İrsaliyesi {0} teslim edilmemelidir, -Delivery Notes {0} must be cancelled before cancelling this Sales Order,Satış Siparişi iptal edilmeden önce İrsaliyeler {0} iptal edilmelidir, -Delivery Notes {0} updated,{0} Satış İrsaliyesi güncellendi, -Delivery Status,Teslimat Durumu, -Delivery Trip,Teslimat Yolculuğu, +Delivered: {0},Teslim: {0}, +Delivery,İrsaliye, +Delivery Date,İrsaliye Tarihi, +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, +Delivery Notes {0} updated,Teslimat Notları {0} güncellendi, +Delivery Status,Teslim Durumu, +Delivery Trip,Teslimat Gezisi, Delivery warehouse required for stock item {0},Teslim depo stok kalemi için gerekli {0}, Department,Departman, -Department Stores,Departman Mağazaları, +Department Stores,Departman mağazaları, Depreciation,Amortisman, Depreciation Amount,Amortisman Tutarı, -Depreciation Amount during the period,Dönem içindeki Amortisman Tutarı, +Depreciation Amount during the period,döneminde Amortisman Tutarı, Depreciation Date,Amortisman Tarihi, -Depreciation Eliminated due to disposal of assets,Amortisman nedeniyle elden çıkarma elendi, -Depreciation Entry,Amortisman Kaydı, +Depreciation Eliminated due to disposal of assets,Amortisman nedeniyle varlıkların elden çıkarılması elendi, +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 Tarihten ö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'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} bilgisayarı bulunamadı, -Diff Qty,Fark Miktarı, +Did not find any item called {0},{0} kalemi bulunamadı, +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 farklı hesabının aktif ya da pasif bir hesap tipi olması gerekmektedir, -Difference Amount,Farklı ayrılıklar, +"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ı, Difference Amount must be zero,Fark Tutar sıfır olmalıdır, -Different UOM for items will lead to incorrect (Total) Net Weight value. Make sure that Net Weight of each item is in the same UOM.,Ürünler için farklı Ölçü Birimi yanlış (Toplam) net değer değerine yol açacaktır. Net etki değerinin aynı olduğundan emin olun., +Different UOM for items will lead to incorrect (Total) Net Weight value. Make sure that Net Weight of each item is in the same UOM.,Ürünler için farklı Ölçü Birimi yanlış (Toplam) net ağırlıklı değere yol açacaktır. Net ağırlıklı değerin aynı olduğundan emin olun., Direct Expenses,Doğrudan Giderler, -Direct Income,doğrudan gelir, +Direct Income,Doğrudan gelir, Disable,Devre Dışı Bırak, -Disabled template must not be default template,Engelli kalıpları varsayılan kalıpları, +Disabled template must not be default template,Engelli şablon varsayılan şablon olmamalıdır, Disburse Loan,Kredi Kredisi, -Disbursed,Önceki dönemlerde toplananlar, +Disbursed,Önceki dönemlerde toplanan, Disc,Disk, Discharge,Deşarj, Discount,İndirim, -Discount Percentage can be applied either against a Price List or for all Price List.,İndirim Yüzdesi bir Fiyat veya bütün fiyat listelerine karşı uygulanabilir., -Discount must be less than 100,İndirim 100'den az olmalı, +Discount Percentage can be applied either against a Price List or for all Price List.,İndirim Yüzdesi bir Fiyat listesine veya bütün fiyat listelerine karşı uygulanabilir., +Discount must be less than 100,İndirim 100'den az olmalıdır, Diseases & Fertilizers,Hastalıklar ve Gübreler, Dispatch,Sevk, Dispatch Notification,Sevk Bildirimi, -Dispatch State,Sevk Durumu, +Dispatch State,Sevk devlet, Distance,Mesafe, -Distribution,Dağıtım, +Distribution,dağıtım, Distributor,Dağıtımcı, -Dividends Paid,Ödenen Temettüler, -Do you really want to restore this scrapped asset?,Eğer gerçekten bu hurdaya ait varlığın geri yüklenmesini istiyor musunuz?, -Do you really want to scrap this asset?,Bu varlığı gerçekten hurdalamak istiyor musunuz?, -Do you want to notify all the customers by email?,Tüm bileşenleri e-posta ile haber vermek istiyor musunuz?, -Doc Date,Belge Tarihi, -Doc Name,Belge Adı, -Doc Type,Belge Türü, -Docs Search,Belge Ara, -Document Name,Belge adı, +Dividends Paid,Temettü Ücretli, +Do you really want to restore this scrapped asset?,Eğer gerçekten bu hurdaya varlığın geri yüklemek istiyor musunuz?, +Do you really want to scrap this asset?,Bu varlığı gerçekten hurda etmek istiyor musunuz?, +Do you want to notify all the customers by email?,Tüm müşterilere e-posta ile haber vermek istiyor musunuz?, +Doc Date,Doküman Tarihi, +Doc Name,Doküman Adı, +Doc Type,Doküman Türü, +Docs Search,Dokümanlar Ara, +Document Name,Belge Adı, Document Status,Belge Durumu, Document Type,Belge Türü, -Domain,Domain, -Domains,Domains, -Done,Bitti, -Donor,Donör, +Domain,Etki Alanı, +Domains,Çalışma Alanları, +Done,tamam, +Donor,verici, 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 is mandatory,Bitiş Tarihi, +Due Date cannot be before Posting / Supplier Invoice Date,Son Ödeme Tarihi Gönderim / Tedarikçi Fatura Tarihi'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,müşteri grubu tablosunda bulunan yinelenen müşteri grubu, +Duplicate customer group found in the cutomer group table,cutomer grubu tablosunda bulunan yinelenen müşteri grubu, 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} öğrenci için yinelenen rulo numarası, -Duplicate row {0} with same {1},Satır {0} ı {1} ile aynı biçimlerde kopyala, +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,Gün olarak Süre, +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üzenleyen, -"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 araştırma.", +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.", 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 korumalar, -Either target qty or target amount is mandatory.,Hedef miktar veya hedef korumalar., +Either target qty or target amount is mandatory,Hedef miktarı veya hedef tutarı zorunludur, +Either target qty or target amount is mandatory.,Hedef miktarı veya hedef tutarı zorunludur., Electrical,Elektrik, Electronic Equipments,Elektronik Ekipmanlar, Electronics,Elektronik, Eligible ITC,Uygun ITC, Email Account,E-posta Hesabı, -Email Address,E-posta Address, +Email Address,E, "Email Address must be unique, already exists for {0}","{0} E-posta adresi zaten var, benzersiz olmalıdır.", -Email Digest: ,Özet e-posta:, -Email Reminders will be sent to all parties with email contacts,E-posta Hatırlatıcıları e-posta ile tüm gönderia gönderilecek, -Email Sent,E-posta Gönderildi, +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 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 ID, -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""", @@ -938,24 +938,24 @@ Employee {0} is on Leave on {1},"{0} çalışanı, {1} tarihinde devam ediyor", Employee {0} of grade {1} have no default leave policy,{1} notunun {0} çalışanında varsayılan izin yok politikası yoktur, Employee {0} on Half day on {1},"Yarım günde Çalışan {0}, {1}", Enable,Etkinleştir, -Enable / disable currencies.,/ Para birimlerini etkinleştirir/devre dışı bırakır., +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, 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 Date cannot be before Start Date.,"Bitiş Tarihi, Başlangıç Tarihi'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 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'nden önce olamaz.", Energy,Enerji, -Engineer,mühendis, -Enough Parts to Build,Yeter Parçaları İnşa, -Enroll,ayrılmak, -Enrolling student,kayıtlıunan öğrenci, -Enrolling students,öğrencileri kaydetme, -Enter depreciation details,Amortisman bilgileri girin, +Engineer,Mühendis, +Enough Parts to Build,Yeter Parçaları Build, +Enroll,kaydetmek, +Enrolling student,kaydolunan öğrenci, +Enrolling students,Öğrencileri kaydettirme, +Enter depreciation details,Amortisman bilgilerini girin, Enter the Bank Guarantee Number before submittting.,Göndermeden önce Banka Garanti Numarasını girin., Enter the name of the Beneficiary before submittting.,Gönderilmeden önce Faydalanıcının adını girin., Enter the name of the bank or lending institution before submittting.,Göndermeden önce banka veya kredi kurumunun adını girin., @@ -963,57 +963,57 @@ Enter value betweeen {0} and {1},{0} ve {1} arasındaki bahis değerini girin, Entertainment & Leisure,Eğlence ve Boş Zaman, Entertainment Expenses,Eğlence giderleri, Equity,Özkaynak, -Error Log,Hata Günlüğü, -Error evaluating the criteria formula,Kriter formüllerini değerlendirirken hata oluştu, -Error in formula or condition: {0},Formül ya da işletim hatası: {0}, -Error: Not a valid id?,Hata: geçerli bir mahkeme?, -Estimated Cost,Tahmini Maliyet, +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?, +Estimated Cost,Tahmini maliyeti, Evaluation,Değerlendirme, -"Even if there are multiple Pricing Rules with highest priority, then following internal priorities are applied:","Eğer yüksek öncelikli birden çok Fiyatlandırma Kuralı varsa, şu iç önermeler geçerli olacaktır.", -Event,Etkinlik, +"Even if there are multiple Pricing Rules with highest priority, then following internal priorities are applied:","Eğer yüksek öncelikli birden çok Fiyatlandırma Kuralı varsa, şu iç öncelikler geçerli olacaktır.", +Event,Faaliyet, Event Location,Etkinlik Yeri, Event Name,Etkinlik Adı, 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, -Execution,Yerine Geliştirme, -Executive Search,Arama Yürütücü, -Expand All,Tümünü Genişlet, +Execution,Yerine Getirme, +Executive Search,Yürütücü Arama, +Expand All,Hepsini genişlet, Expected Delivery Date,Beklenen Teslim Tarihi, 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şlangıç Tarihi, -Expense,Gider, +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,Gider Talebi, -Expense Claim for Vehicle Log {0},Araç girişi için Gider Talebi {0}, -Expense Claim {0} already exists for the Vehicle Log,Gider Talebi {0} zaten Araç girişi için var, +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ının yükümlüleri, -Expenses,Giderler, +Expense account is mandatory for item {0},Ürün {0} için gider hesabı zorunludur, +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 Toplu İşler, +Expired Batches,Süresi dolan Toplu İşler, Expires On,Tarihinde sona eriyor, -Expiring On,süresi doldu, -Expiry (In Days),(Gün) Son Kullanım, +Expiring On,Süresi doldu, +Expiry (In Days),(Gün) Son Kullanma, Explore,Keşfet!, Export E-Invoices,E-Faturaları Dışa Aktar, -Extra Large,ekstra büyük, -Extra Small,Çok küçük, +Extra Large,Ekstra büyük, +Extra Small,Extra Small, Fail,Başarısız, Failed,Başarısız, Failed to create website,Web sitesi oluşturulamadı, Failed to install presets,Önayarlar yüklenemedi, -Failed to login,giriş yapılamadı, -Failed to setup company,kurulum şirketi başarısız oldu, -Failed to setup defaults,varsayılanlar ayarlanamadı, +Failed to login,Giriş yapılamadı, +Failed to setup company,Kurulum şirketi başarısız oldu, +Failed to setup defaults,Varsayılanlar ayarlanamadı, Failed to setup post company fixtures,Şirket armatürleri ayarlanamadı, -Fax,Fax, -Fee,Ücret, +Fax,Faks, +Fee,ücret, Fee Created,Ücretlendirildi, Fee Creation Failed,Ücret Oluşturma Başarısız Oldu, Fee Creation Pending,Ücret Oluşturma Bekliyor, @@ -1026,95 +1026,95 @@ Fetch Subscription Updates,Abonelik Güncellemeleri Al, Fetch exploded BOM (including sub-assemblies),(Alt-montajlar dahil) patlamış BOM'ları getir, Fetching records......,Kayıtlar alınıyor ......, Field Name,Alan Adı, -Fieldname,Alanadı, +Fieldname,fieldname, Fields,Alanlar, -Fill the form and save it,Form doldurucu ve denetleyicileri, +Fill the form and save it,Formu doldurun ve kaydedin, Filter Employees By (Optional),Çalışanları ... ile Filtrele (Opsiyonel), -"Filter Fields Row #{0}: Fieldname {1} must be of type ""Link"" or ""Table MultiSelect""",Filtre Alanları Satırı # {0}: {1} alan adı "Link" veya "Table MultiSelect" tipinde olmalı, +"Filter Fields Row #{0}: Fieldname {1} must be of type ""Link"" or ""Table MultiSelect""",Filtre Alanları Satırı # {0}: {1} alan adı "Link" veya "Table MultiSelect" tipinde olmalıdır, Filter Total Zero Qty,Toplam Sıfır Miktar Filtresi, -Finance Book,Mali Defter, -Financial / accounting year.,Mali / Muhasebe Yılı., -Financial Services,Finansal Hizmetler, +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,Mamul Ürün, -Finished Good Item Code,Mamul Ürün Kodu, +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 sonlandırıldı {0} imalat tipi giriş için girilmelidir, +Finished Item {0} must be entered for Manufacture type entry,Öğe bitirdi {0} imalatı tipi giriş için girilmelidir, Finished product quantity {0} and For Quantity {1} cannot be different,Bitmiş ürün miktarı {0} ve Miktar {1} için farklı olamaz, -First Name,Adı, -"Fiscal Regime is mandatory, kindly set the fiscal regime in the company {0}","Mali rejimler, lütfen {0} şirketteki 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", +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 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} not found,bulunamadı Mali Yılı {0}, -Fixed Asset,Sabit Kıymet, -Fixed Asset Item must be a non-stock item.,Sabit Kıymet Öğesi olmayan bir stok defteri olmalıdır., -Fixed Assets,Sabit Kıymetler, -Following Material Requests have been raised automatically based on Item's re-order level,Malzeme İstekleri bir sonraki öğenin yeniden müşteri hizmetini göre otomatik olarak geldikleri, -Following accounts might be selected in GST Settings:,GST Ayarları'nda aşağıdaki hesaplar kullanılabilir:, -Following course schedules were created,Aşağıdaki ders programlarının kaydedilmesi, -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 öğeden {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} içeriği, {1} öğesi olarak işaretlenmemiş. Öğeleri ana öğeden {1} öğe olarak etkinleştirebilirsiniz", +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 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,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.","'Ürün Paketi' malzemeleri, Depo, Seri No ve Toplu No 'Ambalaj Listesi' tablodan kabul edilebilir. Depo ve Toplu Hayır herhangi bir 'Ürün Paketi' öğe için tüm ambalaj sunumu için aynı ise, bu değerler ana Öğe tablosu girilebilir, değerler tablosu 'Listesi Ambalaj' çoğaltılacaktır.", -For Employee,çalışanlara, -For Quantity (Manufactured Qty) is mandatory,Miktar (Adet Üretilen) cezaları, +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,Çalışanlara, +For Quantity (Manufactured Qty) is mandatory,Miktar (Adet Üretilen) zorunludur, 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 stokunu girebilirsiniz.", -"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} dahil etmek için, satır {3} de dahil edilmelidir", -For row {0}: Enter Planned Qty,{0} bilgi için: Planlanan Miktarı Girin, -"For {0}, only credit accounts can be linked against another debit entry","{0}, yalnızca kredi hesapları başka bir ödeme girişine karşı bağlantılı olabilir", -"For {0}, only debit accounts can be linked against another credit entry","{0}, yalnızca banka hesapları başka bir kredi girişine karşı bağlantılı olabilir", +"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 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", +"For {0}, only debit accounts can be linked against another credit entry","{0}, sadece banka hesapları başka bir kredi girişine karşı bağlantılı olabilir için", Forum Activity,Forum Etkinliği, -Free item code is not selected,Ücretsiz ürün kodu tahminidi, +Free item code is not selected,Ücretsiz ürün kodu seçilmedi, Freight and Forwarding Charges,Navlun ve Sevkiyat Ücretleri, -Frequency,Frekans, +Frequency,frekans, Friday,Cuma, -From,itibaren, -From Address 1,Adres 1'den, -From Address 2,Adres 2'den, +From,Itibaren, +From Address 1,Adres 1'den, +From Address 2,Adres 2'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 bugüne kadardan ileride olamaz, -From Date must be before To Date,Tarihten itibaren bugüne kadardan önce olmalıdır, -From Date should be within the Fiscal Year. Assuming From Date = {0},Tarihten Mali'den 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} personelden çalışanın masrafından sonra tarih olamaz {1}, -From Date {0} cannot be before employee's joining Date {1},{0} personelinin çalışanlardan {1} yayınlanmasından ö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ş. Cari Adı, -From Pin Code,Baş. Pin Kodu, -From Place,Baş. Yeri, +From Date cannot be greater than To Date,Tarihten itibaren tarihe kadardan ileride olamaz, +From Date must be before To Date,Tarihten itibaren tarihe kadardan önce olmalıdır, +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,DateTime Gönderen, +From Delivery Note,İrsaliyeden, +From Fiscal Year,Mali Yıldan, +From GSTIN,GSTIN'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 düzeni sunucusu bir tedarikçiden, Muaf ve Nil Puanı", -From and To dates required,tarih aralığı gerekli, -From date can not be less than employee's joining date,"Başlangıç elde etmek, çalışanın birleştirme yöntemleri daha az olamaz", -From value must be less than to value in row {0},"Değerden, {0} bilgisindeki değerden az olmalıdır", +"From a supplier under composition scheme, Exempt and Nil rated","Kompozisyon şeması altındaki bir tedarikçiden, Muaf ve Nil Puanı", +From and To dates required,Tarih aralığı gerekli, +From date can not be less than employee's joining date,"Başlangıç tarihinden, çalışanın katılma tarihinden daha az olamaz", +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 Adet, Fulfillment,yerine getirme, Full,Tam, Full Name,Tam Adı, -Full-time,tam mesai, -Fully Depreciated,Değer kaybı, +Full-time,Tam zamanlı, +Fully Depreciated,Değer kaybı tamamlanmış, Furnitures and Fixtures,Döşeme ve demirbaşlar, "Further accounts can be made under Groups, but entries can be made against non-Groups","Ek hesaplar Gruplar altında yapılabilir, ancak girişler olmayan Gruplar karşı yapılabilir", Further cost centers can be made under Groups but entries can be made against non-Groups,"Daha fazla masraf Gruplar altında yapılabilir, ancak girişleri olmayan Gruplar karşı yapılabilir", @@ -1124,119 +1124,119 @@ GSTIN,GSTIN, GSTR3B-Form,GSTR3B-Formu, Gain/Loss on Asset Disposal,Varlık Bertaraf Kâr / Zarar, Gantt Chart,Gantt şeması, -Gantt chart of all tasks.,Bütün görevlerinin Gantt Şeması., +Gantt chart of all tasks.,Bütün görevlerin Gantt Şeması., Gender,Cinsiyet, General,Genel, General Ledger,Genel Muhasebe, Generate Material Requests (MRP) and Work Orders.,Malzeme Talepleri (MRP) ve İş Emirleri Oluşturun., Generate Secret,Gizli Oluştur, -Get Details From Declaration,Açıklamadan Detaylar Alın, +Get Details From Declaration,Deklarasyondan Detaylar Alın, Get Employees,Çalışanları Al, Get Invocies,Davetiye Al, Get Invoices,Faturaları Al, Get Invoices based on Filters,Filtrelere Dayalı Faturaları Al, -Get Items from BOM,BOMdan Ürünleri Getir, -Get Items from Healthcare Services,Sağlık Hizmetlerinden Ürünleri Getir, -Get Items from Prescriptions,Reçeteden Öğeleri Getir, -Get Items from Product Bundle,Bundle Ürün Öğelerini Getir, -Get Suppliers,Tedarikçileri Getir, -Get Suppliers By,Tedarikçiye göre Getir, -Get Updates,Güncellemeler Al, -Get customers from,Müşterileri şu adresten Getir:, -Get from Patient Encounter,Hasta Envanterinden Getir, -Getting Started,Başlarken, +Get Items from BOM,BOM dan Ürünleri alın, +Get Items from Healthcare Services,Sağlık Hizmetlerinden Ürün Alın, +Get Items from Prescriptions,Reçeteden Öğeleri Al, +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üncellemeler Alın, +Get customers from,Müşterileri şu adresten alın:, +Get from Patient Encounter,Hasta Envanterinden Alın, +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, -GoCardless SEPA Mandate,GoCardless SEPA Yetkisi, -GoCardless payment gateway settings,GoCardless ödeme ağ özellikleri ayarları, -Goal and Procedure,Hedef ve çember, +Go to the Desktop and start using ERPNext,Masaüstüne gidip ERPNext 'i kullanmaya başlayabilirsiniz, +GoCardless SEPA Mandate,GoCardless SEPA Mandate, +GoCardless payment gateway settings,GoCardless ödeme ağ geçidi ayarları, +Goal and Procedure,Hedef ve Prosedür, Goals cannot be empty,Hedefleri boş olamaz, Goods In Transit,Transit Ürünler, -Goods Transferred,Edilen Mallar'ı transfer et, -Goods and Services Tax (GST India),Mal ve Hizmet Vergisi (GST Hindistan), -Goods are already received against the outward entry {0},{0} dış girişine karşı ürünler zaten alınmış, +Goods Transferred,Transfer Edilen Mallar, +Goods and Services Tax (GST India),Mal ve Hizmet Vergisi (GST India), +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,İzin ver, -Grant Application,Uygulamaya izin ver, -Grant Leaves,İzin ver, -Grant information.,Bilgi ver., +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 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 Alış Tutarı, -Gross Purchase Amount is mandatory,Brüt Alış Tutarı zorunludur, -Group by Account,Hesaba göre Gruplandır, -Group by Party,Cariye göre Gruplandır, -Group by Voucher,Fişe göre Gruplandır, -Group by Voucher (Consolidated),Fişe göre Gruplandır (Konsolide), +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, +Group by Voucher,Dekont Grubu, +Group by Voucher (Consolidated),Fişe Göre Grup (Konsolide), Group node warehouse is not allowed to select for transactions,Grup düğüm depo işlemleri için seçmek için izin verilmez, -Group to Non-Group,Gruptan Grup Dışına, -Group your students in batches,gruplar halinde Grup uzantılarınızın, +Group to Non-Group,Sigara Grup Grup, +Group your students in batches,gruplar halinde Grup öğrencilerinizin, Groups,Gruplar, Guardian1 Email ID,Guardian1 E-posta Kimliği, Guardian1 Mobile No,Guardian1 Mobil yok, -Guardian1 Name,Veli1 Adı, +Guardian1 Name,Guardian1 Adı, Guardian2 Email ID,Guardian2 E-posta Kimliği, Guardian2 Mobile No,Guardian2 Mobil yok, Guardian2 Name,Guardian2 Adı, -Guest,Misafir, +Guest,Konuk, HR Manager,İK Yöneticisi, HSN,HSN, -HSN/SAC,HSN / SAK, +HSN/SAC,HSN / SAC, Half Day,Yarım Gün, -Half Day Date is mandatory,Yarım Gün Tarih cezaları, +Half Day Date is mandatory,Yarım Gün Tarih zorunludur, Half Day Date should be between From Date and To Date,Yarım Gün Tarih Tarihinden ve Tarihi arasında olmalıdır, Half Day Date should be in between Work From Date and Work End Date,"Yarım Gün Tarih, İş Başlangıç Tarihi ile İş Bitiş Tarihi arasında olmalıdır.", Half Yearly,Yarım Yıllık, -Half day date should be in between from date and to date,Yarım gün tarihi ile bugünden itibaren arasında olmalıdır, +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 Müdürü, -Health Care,Sağlık Hizmeti, -Healthcare,Sağlık Hizmeti, +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 Uygulanıcısı {0} tarihinde mevcut değil, +Healthcare Practitioner not available on {0},Sağlık Uygulayıcısı {0} tarihinde mevcut değil, Healthcare Practitioner {0} not available on {1},{1} üzerinde Sağlık Uygulayıcısı {0} mevcut değil, Healthcare Service Unit,Sağlık Hizmet Birimi, -Healthcare Service Unit Tree,Sağlık birim ağacı hizmeti, +Healthcare Service Unit Tree,Sağlık hizmeti birim ağacı, Healthcare Service Unit Type,Sağlık Hizmeti Birim Türü, Healthcare Services,Sağlık Hizmetleri, -Healthcare Settings,Sağlık Ayarları, +Healthcare Settings,Sağlık ayarları, Hello,Merhaba, Help Results for,Sonuçlar için Yardım, High,Yüksek, High Sensitivity,Yüksek hassasiyet, -Hold,Tut/Beklet, -Hold Invoice,Faturayı Beklet, +Hold,Muhafaza et, +Hold Invoice,Faturayı Tut, Holiday,Tatil, Holiday List,Tatil Listesi, 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 masrafları, +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 Kaynağı, -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 Müsait (tam hüküm olsun), +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ı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, yürüyüşle ilgili Sadakat Programı ile otomatik olarak bağlantıyı kesecektir (kaydetme sırasında).", -"If multiple Pricing Rules continue to prevail, users are asked to set Priority manually to resolve conflict.","Birden fazla sıralama Kuralo hakimse, kullanıcılardan zorunu geçmek için Önceliği elle ayarlamaları yönlendiriyor", -"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 yazılacaktır. Fiyatlandırma Kuralı oranı son oran, bunlardan daha fazla ceza uygulanmalı. Bu nedenle, Satış Siparişi, Satınalma Siparişi gibi işlemlerde, 'Fiyat Listesi Oranı' alandakin bölümler 'Oran' bölgeye alınıyor.", -"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ı alıcılara bağlı olarak bulunuyorsa, Öncelik uygulanır. Varsayılan değer sıfır (boş) ise Öncelik 0 ile 20 arasında bir sayıdır. Yüksek birimi aynı şekilde birden fazla Fiyatlandırma Kuralları varsa o sonucu alacak demektir.", +"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ın Alma Siparişi gibi işlemlerde, 'Fiyat Listesi Oranı' alanından ziyade 'Oran' 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.", Ignore Existing Ordered Qty,Mevcut Sipariş Miktarını Yoksay, @@ -1249,59 +1249,59 @@ Import Master Data,Ana Verileri İçe Aktar, 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'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 Defter 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 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,UOM'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 Hasta Kaydı, +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'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}, @@ -1311,14 +1311,14 @@ Invalid {0},Geçersiz {0}, Invalid {0} for Inter Company Transaction.,Şirketler Arası İşlem için geçersiz {0}., Invalid {0}: {1},Geçersiz {0}: {1}, Inventory,Stok, -Investment Banking,Yatırım Bankacılığı, +Investment Banking,Yatırım bankacılığı, Investments,Yatırımlar, Invoice,Fatura, Invoice Created,Oluşturulan Fatura, Invoice Discounting,Fatura İndirimi, Invoice Patient Registration,Fatura Hasta Kayıt, Invoice Posting Date,Fatura Gönderme Tarihi, -Invoice Type,Fatura Türü, +Invoice Type,Fatura türü, Invoice already created for all billing hours,"Fatura, tüm faturalandırma saatleri için zaten oluşturuldu", Invoice can't be made for zero billing hour,"Fatura, sıfır faturalandırma saati için yapılamaz", Invoice {0} no longer exists,Fatura {0} artık mevcut değil, @@ -1326,24 +1326,24 @@ Invoiced,Faturalandı, 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'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 mi, -Is Default,Varsayılan mı, -Is Existing Asset,Varolan Varlık mu, -Is Frozen,Dondurulmuş mu, -Is Group,Grup mu, +Is Active,Aktif, +Is Default,Standart, +Is Existing Asset,Varlık Mevcut mı, +Is Frozen,Donmuş, +Is Group,Grup, Issue,Sorun, -Issue Material,Sorun Materyali, +Issue Material,Sayı Malzeme, Issued,Veriliş, Issues,Sorunlar, It is needed to fetch Item Details.,Bu Ürün Detayları getirmesi için gereklidir., Item,Ürün, -Item 1,Öge 1, -Item 2,Öge 2, -Item 3,Öge 3, -Item 4,Öge 4, -Item 5,Öge 5, +Item 1,Madde 1, +Item 2,Madde 2, +Item 3,Madde 3, +Item 4,Madde 4, +Item 5,Madde 5, Item Cart,Ürün Sepeti, Item Code,Ürün Kodu, Item Code cannot be changed for Serial No.,Ürün Kodu Seri No için değiştirilemez, @@ -1352,69 +1352,69 @@ Item Description,Ürün Tanımı, 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 '{1}' 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,Öge Varyant Ayarları, +Item Variant Settings,Öğe Varyant Ayarları, Item Variant {0} already exists with same attributes,Öğe Variant {0} zaten aynı özelliklere sahip bulunmaktadır, Item Variants,Öğe Türevleri, Item Variants updated,Öğe Varyantları güncellendi, -Item has variants.,Öğe varyantlara sahip., -Item must be added using 'Get Items from Purchase Receipts' button,Ürün kumandası 's alma makbuzlarını Öğeleri alın' kullanılarak eklenmelidir, -Item valuation rate is recalculated considering landed cost voucher amount,Ürün değerleme oranı yüklenen maliyet fişi tutarı dikkate alınarak yeniden hesaplanır, -Item variant {0} exists with same attributes,Ürün çeşidi {0} aynı büyümeye sahip bulunmaktadır, -Item {0} does not exist,Ürün {0} yok, -Item {0} does not exist in the system or has expired,Ürün {0} sistemi yoktur veya süresi dolmuştur, +Item has variants.,Öğe varyantları vardır., +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, +Item {0} does not exist in the system or has expired,Ürün {0} sistemde yoktur veya süresi dolmuştur, Item {0} has already been returned,Ürün {0} zaten iade edilmiş, Item {0} has been disabled,{0} devredışı bırakılmış, -Item {0} has reached its end of life on {1},Ürün {0} {1}de kullanım süresinin sonuna gelmiştir., -Item {0} ignored since it is not a stock item,Stok ürün arızası Ürün {0} yok sayıldı, +Item {0} has reached its end of life on {1},Ürün {0} {1}de kullanım ömrünün sonuna gelmiştir., +Item {0} ignored since it is not a stock item,Stok ürünü olmadığından Ürün {0} yok sayıldı, "Item {0} is a template, please select one of its variants","{0} Öğe bir şablon, türevleri birini seçiniz", Item {0} is cancelled,Ürün {0} iptal edildi, Item {0} is disabled,Öğe {0} devre dışı, Item {0} is not a serialized Item,Ürün {0} bir seri Ürün değildir, Item {0} is not a stock Item,Ürün {0} bir stok ürünü değildir, -Item {0} is not active or end of life has been reached,Ürün {0} aktif değil veya kullanım süresinin sonuna gelindi, -Item {0} is not setup for Serial Nos. Check Item master,"Ürün {0} Seri No Kontrol Ürünü Değildir, Ürünü Kapatınız", -Item {0} is not setup for Serial Nos. Column must be blank,Ürün {0} Seri Kurulum yok. Sütün boş bırakılmalıdır, +Item {0} is not active or end of life has been reached,Ürün {0} aktif değil veya kullanım ömrünün sonuna gelindi, +Item {0} is not setup for Serial Nos. Check Item master,"Ürün {0} Seri No Kontrol ürünü değildir, Ürün alanını kontrol ediniz", +Item {0} is not setup for Serial Nos. Column must be blank,Ürün {0} Seri No kurulumu değildir. Sütun boş bırakılmalıdır, Item {0} must be a Fixed Asset Item,Öğe {0} Sabit Kıymet Öğe olmalı, Item {0} must be a Sub-contracted Item,Ürün {0} bir taşeron ürünü olmalıdır, -Item {0} must be a non-stock item,{0} stok muhafazayan ürün olmalıdır, +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 Emri 'Hammadde Tedarik' Tabloda bulunamayan Öğe {0} {1}, -Item {0}: Ordered qty {1} cannot be less than minimum order qty {2} (defined in Item).,Öğe {0}: Sıralı adet {1} minimum sipariş adet {2} (Öğe tanımlanan) daha az olamaz., -Item: {0} does not exist in the system,Ürün: {0} sistemi mevcut değil, +Item {0} not found in 'Raw Materials Supplied' table in Purchase Order {1},Satın Alma Emri 'Hammadde Tedarik' 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 Filtresi, +Items Filter,Öğeler Filtre, 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 {0} created,İş Kartı {0} oluşturuldu, +Job Card,İş kartı, +Job Description,İş tanımı, +Job Offer,İş teklifi, +Job card {0} created,İş kartı {0} oluşturuldu, Jobs,İşler, -Join,Katıl, -Journal Entries {0} are un-linked,Yevmiye Kayıtları {0}-un bağlı olduğu, -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şı toplantıları yok, +Join,Birleştir, +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, -Lab Test Report,Laboratuvar Test Raporu, +Lab Test,Laboratuvar testi, +Lab Test Report,Lab Test Raporu, Lab Test Sample,Laboratuvar Testi Örneği, -Lab Test Template,Laboratuvar Testi Şablonu, -Lab Test UOM,Laboratuvar Testi Birimi, +Lab Test Template,Lab Test Şablonu, +Lab Test UOM,Laboratuvar Testi UOM, Lab Tests and Vital Signs,Laboratuar Testleri ve Hayati İşaretler, Lab result datetime cannot be before testing datetime,"Lab sonuç datetime, datetime testinden önce olamaz", -Lab testing datetime cannot be before collection datetime,"Laboratuvar test tarih saati, toplama işlemi önce olamaz", +Lab testing datetime cannot be before collection datetime,"Laboratuvar testi tarih saati, toplama tarihinden önce olamaz", Label,Etiket, -Laboratory,Laboratuvar, +Laboratory,laboratuvar, Language Name,Dil Adı, Large,Büyük, Last Communication,Son İletişim, @@ -1422,286 +1422,286 @@ Last Communication Date,Son İletişim Tarihi, 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, -Lead,Müşteri Adayı, +Latest,son, +Latest price updated in all BOMs,Tüm BOM'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ü, -Leave Type {0} cannot be allocated since it is leave without pay,o ödeme yapmadan terk beri Türü {0} tahsisi gereksiz bırakın, -Leave Type {0} cannot be carry-forwarded,{0} carry-ilet çocuklar olamaz Type bırakın, +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 izin, -Leave and Attendance,Puantaj ve İzin, -Leave application {0} already exists against the student {1},{1} öğrencine karşı {0} çalışanı zaten bırak, -"Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}","Öncelik tahsis edememek izin {0}, izin özellikleri zaten devredilen 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}","İzin yapısı zaten devredilen gelecek izin tahsisi kayıtlarında olduğu gibi, daha önce {0} iptal / tatbik etmek anlamsız bırakın {1}", -Leave of type {0} cannot be longer than {1},{0} türündeki izin, {1}'den uzun olamaz, -Leaves,İzinler, -Leaves Allocated Successfully for {0},{0} için Başarıyla Tahsis Edilen İzinler, -Leaves has been granted sucessfully,İzinler başarıyla verildi, -Leaves must be allocated in multiples of 0.5,İzinler 0,5'in katları şeklinde tahsis edilmelidir, -Leaves per Year,Yıllık İzin, -Ledger,Defteri Kebir, +Leave Without Pay,Ücretsiz İzin, +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,Yapraklar, +Leaves Allocated Successfully for {0},İzinler {0} için başarıyla tahsis edildi, +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ı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, Liability,Borç, License,Lisans, Lifecycle,Yaşam döngüsü, -Limit,Limit, -Limit Crossed,Limit Çapraz, -Link to Material Request,Malzeme Talebi Bağlantısı, +Limit,sınır, +Limit Crossed,sınır Çapraz, +Link to Material Request,Malzeme İsteğine Bağlantı, 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,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,Kaybedildi, -Lost Reasons,Kayıp Nedenleri, +Lost,Kayıp, +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 Points will be calculated from the spent done (via the Sales Invoice), based on collection factor mentioned.","Sadakat Puanları, belirtilen tahsilat factorne göre harcanan tutarlardan (Satış Faturası yoluyla) hesaplanacaktır.", +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ı, -Main,Main, +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 Hareketi Yap, +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 Parça Numarası, +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, +Marketing Expenses,Pazarlama giderleri, Marketplace,Pazaryeri, -Marketplace Error,Pazaryeri Hatası, -Masters,Masters, +Marketplace Error,Marketplace Hatası, +Masters,Alanlar, Match Payments with Invoices,Faturalar ile maç Ödemeleri, -Match non-linked Invoices and Payments.,Bağlantısız Faturaları ve Ödemeleri eşleştirme., +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 Consumption,Malzeme tüketimi, +Material Consumption is not set in Manufacturing Settings.,Malzeme Ayarları Üretim Ayarları'nda ayarlanmamıştır., Material Receipt,Malzeme Alındısı, -Material Request,Malzeme Talebi, +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 var olan Hammadde miktarı olarak, Malzeme Talebi yaratılmadı.", -Material Request of maximum {0} can be made for Item {1} against Sales Order {2},Maksimum {0} Malzeme Talebi Malzeme {1} için Satış Siparişi {2} yapılabilir, +"Material Request not created, as quantity for Raw Materials already available.","Zaten mevcut olan Hammadde miktarı olarak, Malzeme Talebi yaratılmadı.", +Material Request of maximum {0} can be made for Item {1} against Sales Order {2},Maksimum {0} Malzeme Talebi Malzeme {1} için Satış Emri {2} karşılığında yapılabilir, Material Request to Purchase Order,Satınalma Siparişi Malzeme Talebi, Material Request {0} is cancelled or stopped,Malzeme Talebi {0} iptal edilmiş veya durdurulmuştur, -Material Request {0} submitted.,{0} Malzeme Talebi gönderildi., +Material Request {0} submitted.,{0} Malzeme İsteği gönderildi., Material Transfer,Malzeme Transferi, -Material Transferred,Edilen Malzeme Transferi, -Material to Supplier,Tedarikçi için Malzeme, -Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1},"Azami Muafiyet Tutarı, {1} Vergi Muafiyeti Kategorisi {1} azami muafiyet yöneticilerinden fazla olamaz.", +Material Transferred,Transfer Edilen Malzeme, +Material to Supplier,Tedarikçi Malzeme, +Max Exemption Amount cannot be greater than maximum exemption amount {0} of Tax Exemption Category {1},"Azami Muafiyet Tutarı, {1} Vergi Muafiyeti Kategorisi {1} azami muafiyet tutarından fazla olamaz.", Max benefits should be greater than zero to dispense benefits,"Maksimum faydalar, faydaları dağıtmak için sıfırdan büyük olmalıdır", -Max discount allowed for item: {0} is {1}%,Malzeme {0}için izin verilen maksimum indirim} %{1}, -Max: {0},Maks: {0}, +Max discount allowed for item: {0} is {1}%,Malzeme {0 }için izin verilen maksimum indirim} {1}%, +Max: {0},Max: {0}, Maximum Samples - {0} can be retained for Batch {1} and Item {2}.,"Maksimum Örnekler - {0}, Toplu İş {1} ve Madde {2} için tutulabilir.", -Maximum Samples - {0} have already been retained for Batch {1} and Item {2} in Batch {3}.,"Maksimum Örnekler - {0}, Toplu İş {1} ve Öğe {2} için Toplu İş Alma İşlemi {3} içinde zaten tutulmuştur.", -Maximum amount eligible for the component {0} exceeds {1},{0}yapıya uygun maksimum tutarlar {1} değerini aşıyor, -Maximum benefit amount of component {0} exceeds {1},{0}yapının maksimum fayda miktarı {1} değerini aşıyor, +Maximum Samples - {0} have already been retained for Batch {1} and Item {2} in Batch {3}.,"Maksimum Örnekler - {0}, Toplu İş {1} ve Öğe {2} için Toplu İş Alma İşlemi {3} içinde zaten tutuldu.", +Maximum amount eligible for the component {0} exceeds {1},{0} bileşenine uygun maksimum tutar {1} değerini aşıyor, +Maximum benefit amount of component {0} exceeds {1},{0} bileşeninin maksimum fayda miktarı {1} değerini aşıyor, Maximum benefit amount of employee {0} exceeds {1},{0} çalışanının maksimum fayda miktarı {1} değerini aşıyor, -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ü izin verilen maksimum izin {1}, +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 Standard,Tıbbi Kod Standardı, -Medical Department,Tıp Bölümü, +Medical Department,Tıp Departmanı, Medical Record,Tıbbi kayıt, Medium,Orta, -Meeting,toplantı, +Meeting,Toplantı, Member Activity,Üye Etkinliği, Member ID,Kullanıcı Kimliği, -Member Name,Üye Adı, -Member information.,Üye Bilgisi., +Member Name,Üye adı, +Member information.,Üye bilgisi., Membership,Üyelik, Membership Details,Üyelik Detayları, Membership ID,Üyelik Kimliği, -Membership Type,Üyelik Tipi, -Memebership Details,Üyelik Detayları, -Memebership Type Details,Üyelik Türü Ayrıntıları, -Merge,Birleştir, -Merge Account,Hesap Birleştir, +Membership Type,üyelik tipi, +Memebership Details,Memebership Detayları, +Memebership Type Details,Memebership Türü Ayrıntılar, +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 özelliklerden her ikisi, kayıtlarında aynı ise birleştirme mümkündür. Grup, Kök tipi, Şirket", +"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,Mesaj Gönderildi, +Message Sent,Gönderilen Mesaj, Method,Yöntem, -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 Amttan 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'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 Kayı Yaşı (Gün), +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 value for Password, API Key or Shopify URL","Şifre, API Anahtarı veya Shopify URL için eksik değer", -Mode of Payment,Ödeme Şekli, -Mode of Payments,Ödemeler Şekli, -Mode of Transport,Ulaşım Şekli, +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,Modeli, +Model,model, Moderate Sensitivity,Orta hassasiyet, Monday,Pazartesi, Monthly,Aylık, Monthly Distribution,Aylık Dağılımı, Monthly Repayment Amount cannot be greater than Loan Amount,Aylık Geri Ödeme Tutarı Kredi Miktarı daha büyük olamaz, More,Daha fazla, -More Information,Daha Fazla Bilgi, +More Information,Daha fazla bilgi, More than one selection for {0} not allowed,{0} için birden fazla seçime izin verilmiyor, More...,Daha..., -Motion Picture & Video,Sinema Filmi ve Video, -Move,Taşı, -Move Item,Öğe Taşı, -Multi Currency,Çokluk Para Birimi, +Motion Picture & Video,Motion Picture & Video, +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 Çokluk Sadakat 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, kesinlikle atayarak çatışmayın lütfen. Fiyat Kuralları: {0}", +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},İsim hatası: {0}, +Name error: {0},Adı hatası: {0}, 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 koruyucuları, +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 Oranına izin verilmez, +Negative Valuation Rate is not allowed,Negatif Değerleme Br.Fiyatına izin verilmez, Negotiation/Review,Müzakere / İnceleme, Net Asset value as on,Net Aktif değeri olarak, -Net Cash from Financing,Finansmandan Elde Edilen Net Nakit, -Net Cash from Investing,Yatırımdan Elde Edilen Net Nakit, -Net Cash from Operations,Faaliyetlerden Elde Edilen Net Nakit, -Net Change in Accounts Payable,Borç Hesabı Net Değişim, -Net Change in Accounts Receivable,Alacak Hesabı Net Değişim, +Net Cash from Financing,Finansman Sağlanan Net Nakit, +Net Cash from Investing,Yatırım Kaynaklanan Net Nakit, +Net Cash from Operations,Faaliyetlerden Kaynaklanan Net Nakit, +Net Change in Accounts Payable,Borç Hesapları Net Değişim, +Net Change in Accounts Receivable,Alacak Hesapları Net Değişim, Net Change in Cash,Nakit Net Değişim, Net Change in Equity,Özkaynak Net Değişim, -Net Change in Fixed Asset,Sabit Kıymet Net Değişim, +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,Net ödeme, Net Pay cannot be less than 0,Net Ücret az 0 olamaz, -Net Profit,Net Kazanç, +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 BOM,Yeni Ürün Ağacı, +New Address,Yeni adres, +New BOM,Yeni BOM, 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 Geliri, -New Customers,Yeni Müşteriler, -New Department,Yeni Departman, -New Employee,Yeni Çalışan, -New Location,Yeni Konum, -New Quality Procedure,Yeni Kalite hükümleri, +New Customer Revenue,Yeni Müşteri Gelir, +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 Deposuz olamaz. Depo Stok Hareketi ile veya alım makbuzuyla 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ı, -Newsletters,Haber Bültenleri, +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 Tarihi olamaz, -Next Steps,Sonraki Adımlar, -No Action,İşlem yok, +Next Contact Date cannot be in the past,Sonraki İletişim Tarih geçmişte olamaz, +Next Steps,Sonraki adımlar, +No Action,Hiçbir eylem, No Customers yet!,Henüz müşteri yok!, -No Data,Hiç Veri yok, -No Delivery Note selected for Customer {},Müşteri için {} dağıtım Notu çalıştırmadı, +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}, No Item with Serial No {0},Seri Numaralı Ürün Yok {0}, -No Items available for transfer,Hayır Öğeler aktarımı için kullanılabilir, -No Items selected for transfer,Transfer için hiçbir öğe düşünülmedi, -No Items to pack,Ambalaj Ürün Yok Olacak, +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,Malzeme Listesine Öğe Yok İmalat için, No Items with Bill of Materials.,Malzeme Listesi ile Öğe Yok., No Permission,İzin yok, -No Remarks,Remark 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 anda Çalışana {0} atanan Maaş Yapısı yok, -No Staffing Plans found for this Designation,Bu belirleme için hiçbir kişisel tesis bulunamadı, -No Student Groups created.,Hiçbir Öğrenci Grupları mevcut., -No Students in,İçinde öğrenci 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ı, +No Student Groups created.,Hiçbir Öğrenci Grupları oluşturuldu., +No Students in,Içinde öğrenci yok, No Tax Withholding data found for the current Fiscal Year.,Mevcut Mali Yılı için Vergi Stopajı verileri bulunamadı., No Work Orders created,İş emri oluşturulmadı, No accounting entries for the following warehouses,Şu depolar için muhasebe girdisi yok, -No active or default Salary Structure found for employee {0} for the given dates,veri tarihleri için çalışanlar {0} için bulunma aktif veya varsayılan Maaş Yapısı, +No active or default Salary Structure found for employee {0} for the given dates,Verilen tarihler için çalışan {0} için bulunamadı aktif veya varsayılan Maaş Yapısı, No contacts with email IDs found.,E-posta kimlikleri olan hiç kişi bulunamadı., No data for this period,Bu süre için veri yok, No description given,Açıklama verilmemiştir, @@ -1709,18 +1709,18 @@ No employees for the mentioned criteria,Sözü edilen ölçütler için çalış 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 oluşturmadı, -No more updates,Başka güncelleme yok, -No of Interactions,Etkileşim Yok, -No of Shares,Ödeme Sayısı, -No pending Material Requests found to link for the given items.,Sağlanan hizmet için bağlantı bekleyen herhangi bir Malzeme Talebi bulunamadı., +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ı, No products found.,Hiçbir ürün bulunamadı., No record found,Kayıt Bulunamadı, No records found in the Invoice table,Fatura tablosunda kayıt bulunamadı, No records found in the Payment table,Ödeme tablosunda kayıt bulunamadı, -No replies from,Şundan yanıt yok, -No salary slip found to submit for the above selected criteria OR salary slip already submitted,Yukarıdaki özelliklere göre maaş fişi bulunmayan VEYA maaş fişi zaten gönderildi, +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 çarşaf, No values,Değer yok, @@ -1729,29 +1729,29 @@ Non GST Inward Supplies,GST İç İçe Olmayan Sarf Malzemeleri, Non Profit,Kar Yok, Non Profit (beta),Kar Olmayan (beta), Non-GST outward supplies,GST dışı dış sarf malzemeleri, -Non-Group to Group,grup grup dışı, +Non-Group to Group,Grup grup dışı, None,Yok, -None of the items have any change in quantity or value.,Öğelerin genişliği miktar veya değer bir değişiklik var., -Nos,Nos, +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, Not Available,Mevcut değil, Not Marked,İşaretli değil, -Not Paid and Not Delivered,Ödenmedi ve Teslim Edilmedi, -Not Permitted,İzin yok, -Not Started,Başlatan yok, -Not active,Aktif değil, -Not allow to set alternative item for the item {0},{0} öğesi için alternatif öğeyi ayarlamaya izin verilmez, -Not allowed to update stock transactions older than {0},{0} dan eski stok durumunu güncellemeye izin yok, +Not Paid and Not Delivered,Değil Ücretli ve Teslim Edilmedi, +Not Permitted,İzin Değil, +Not Started,Başlatan Değil, +Not active,Aktif Değil, +Not allow to set alternative item for the item {0},{0} öğesi için alternatif öğe ayarlamaya izin verilmez, +Not allowed to update stock transactions older than {0},{0} dan eski stok işlemlerini güncellemeye izin yok, Not authorized to edit frozen Account {0},Dondurulmuş Hesabı {0} düzenleme yetkisi yok, Not authroized since {0} exceeds limits,{0} Yetkili değil {0} sınırı aşar, Not permitted for {0},Izin verilmez {0}, -"Not permitted, configure Lab Test Template as required","İzin verildiğinde, Lab Test Şablonunu gerektiği gibi yapılandırın", -Not permitted. Please disable the Service Unit Type,İzin verilmedi. Lütfen Servis Ünitesi Tipi devre dışı bırakın, -Note: Due / Reference Date exceeds allowed customer credit days by {0} day(s),Not: nedeniyle / Referans Tarihi {0} gün izin müşteri kredisini aştığı (ler), +"Not permitted, configure Lab Test Template as required","İzin verilmediğinde, Lab Test Şablonunu gerektiği gibi yapılandırın", +Not permitted. Please disable the Service Unit Type,İzin verilmedi. Lütfen Servis Ünitesi Tipini devre dışı bırakın, +Note: Due / Reference Date exceeds allowed customer credit days by {0} day(s),Not: nedeniyle / Referans Tarihi {0} gün izin müşteri kredi günü aştığı (ler), Note: Item {0} entered multiple times,Not: Ürün {0} birden çok kez girilmiş, -Note: Payment Entry will not be created since 'Cash or Bank Account' was not specified,"Nakit veya Banka Hesabı'nın belirtilmesinden dolayı, Ödeme Girdisi oluşturulmayacaktır.", -Note: System will not check over-delivery and over-booking for Item {0} as quantity or amount is 0,"Not: Miktar veya miktar 0 olduğundan sistem, {0} Öğesi için fazla teslimatı ve fazla rezervasyonu kontrol etmeyecektir.", -Note: There is not enough leave balance for Leave Type {0},Not: İzin tipi {0} için yeterli izin gününde kalmamış, -Note: This Cost Center is a Group. Cannot make accounting entries against groups.,Not: Bu Maliyet Merkezi bir Gruptur. Gruplara karşı muhasebe girişi yapılamaz., +Note: Payment Entry will not be created since 'Cash or Bank Account' was not specified,"'Nakit veya Banka Hesabı' belirtilmediğinden ötürü, Ödeme Girdisi oluşturulmayacaktır", +Note: System will not check over-delivery and over-booking for Item {0} as quantity or amount is 0,Not: Miktar 0 olduğundan ötürü sistem Ürün {0} için teslimat ve ayırma kontrolü yapmayacaktır, +Note: There is not enough leave balance for Leave Type {0},Not: İzin tipi {0} için yeterli izin günü kalmamış, +Note: This Cost Center is a Group. Cannot make accounting entries against groups.,Not: Bu Maliyet Merkezi bir Grup. Gruplara karşı muhasebe kayıtları yapamazsınız., Note: {0},Not: {0}, Notes,Notlar, Nothing is included in gross,Hiçbir şey brüt dahil değildir, @@ -1760,121 +1760,121 @@ Nothing to change,Değiştirecek bir şey yok, Notice Period,İhbar süresi, Notify Customers via Email,Müşterileri e-postayla bilgilendirin, Number,Numara, -Number of Depreciations Booked cannot be greater than Total Number of Depreciations,Rezervasyon amortismanları sayısı amortismanları Toplam Sayısı fazla olamaz, +Number of Depreciations Booked cannot be greater than Total Number of Depreciations,Rezervasyon amortismanları sayısı amortismanlar Toplam Sayısı fazla olamaz, Number of Interaction,Etkileşim Sayısı, 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 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, 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., -Online Auctions,Çevrimiçi Müzayede, +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ı" Zorunluluk sahibi Öğ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, -Open BOM {0},{0} Açık BOM Malzeme Listesi, -Open Item {0},{0} Açık Öğe, +"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, +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 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,Birikmiş Amortisman Açılışı, +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ış Bakiyesi, -Opening Balance Equity,Açılış Bakiyesi Hissesi, -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,Açılış Tarihi Kapanış Tarihinden önce olmalıdır, +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,Açılış Faturası Oluşturma Aracı, -Opening Invoice Item,Açılış Faturası Kalemi, -Opening Invoices,Açılış Faturaları, -Opening Invoices Summary,Açılış Faturası Özeti, +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ış Stoku, -Opening Stock Balance,Açılış Stok Bakiyesi, -Opening Value,Açılış Değeri, -Opening {0} Invoice created,Açılış {0} Faturalandırma, +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},{0} Operasyonu için İşlem Süresi 0'dan büyük olmalıdır, -"Operation {0} longer than any available working hours in workstation {1}, break down the operation into multiple operations","{0} Operasyonu, {1} iş istasyonundaki herhangi bir kullanılabilir çalışma saatinden daha uzun, Operasyonu birden fazla işleme bölün", +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 {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ı / Müşteri 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ı, -Optional Holiday List not set for leave period {0},"İsteğe bağlı Tatil Listesi, {0} dönem izin için ayarlanmamış", -"Optional. Sets company's default currency, if not specified.","İsteğe bağlı. Eğer belirtilmemişse, şirketin genel para birimini belirler.", -Optional. This setting will be used to filter in various transactions.,İsteğe bağlı. Bu çeşitli ayar işlemlerini yapmak için kullanmaktır, -Options,Sepetler, -Order Count,Sipariş Sayısı, -Order Entry,Sipariş Kaydı, +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 Value,Sipariş Değeri, Order rescheduled for sync,Senkronizasyon için sipariş yeniden planlandı, -Order/Quot %,Sipariş / Teklif %, -Ordered,Sipariş verildi, +Order/Quot %,Sipariş / Teklif%, +Ordered,Sipariş Edildi, Ordered Qty,Sipariş Miktarı, -"Ordered Qty: Quantity ordered for purchase, but not received.","Sipariş Edilen Miktar: Satın alınmak için sipariş verilmiş, ancak teslim alınmamış miktar", +"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,Organizasyon, -Organization Name,Kuruluş adı, +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,Çıkış Değeri, -Out of Order,bozuk, +Out Value,Out Değeri, +Out of Order,Bozuk, Outgoing,Giden, -Outstanding,Ödenmemiş, -Outstanding Amount,Ödenmemiş Tutar, -Outstanding Amt,Ödenmemiş Tutar, -Outstanding Cheques and Deposits to clear,Kapatılacak Ödenmemiş Çekler ve Mevduatlar, +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,Vadesi Geçmiş, +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 sınırları arasında bulunan koşullar:, +Overlapping conditions found between:,Şunların arasında çakışan koşullar bulundu:, Owner,Sahibi, PAN,TAVA, -POS,POS Satış Noktası, +POS,POS, POS Profile,POS Profili, POS Profile is required to use Point-of-Sale,"POS Profili, Satış Noktasını Kullanmak için Gereklidir", 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,Sevk İrsaliyesi, -Packing Slip(s) cancelled,Sevk İrsaliyesi iptal edildi, -Paid,Ödendi, +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,Cari Hesap, -Party Name,Cari Adı, -Party Type,Cari Türü, -Party Type and Party is mandatory for {0} account,{0} hesabı için Cari Türü ve Cari zorunludur, -Party Type is mandatory,Cari Tipi zorunludur, -Party is mandatory,Cari zorunludur, +Party,Taraf, +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, +Party is mandatory,Parti zorunludur, Password,Parola, -Password policy for Salary Slips is not set,Maaş bordrosu için şifre politikası belirlenmedi, +Password policy for Salary Slips is not set,Maaş Fişleri için şifre politikası belirlenmedi, Past Due Date,Son Tarih, Patient,Hasta, Patient Appointment,Hasta Randevusu, @@ -1882,35 +1882,35 @@ Patient Encounter,Hasta Encounter, 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, -Payment,Ödeme, +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 Entry has been modified after you pulled it. Please pull it again.,Bunu çektikten sonra Ödeme Girişi değiştirilmiş. Tekrar çekin lütfen., -Payment Entry is already created,Ödeme girişi 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 çıkışı 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 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ş 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 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 Koşulları, -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, @@ -1922,21 +1922,21 @@ Payroll Payable,Ödenecek Bordro, Payslip,maaş bordrosu, Pending Activities,Bekleyen Etkinlikleri, Pending Amount,Bekleyen Tutar, -Pending Leaves,Bekleyen İzinler, -Pending Qty,Bekleyen Miktar, +Pending Leaves,Bekleyen Yapraklar, +Pending Qty,Bekleyen Adet, Pending Quantity,Bekleyen Miktar, -Pending Review,İnceleme Bekliyor, +Pending Review,Bekleyen İnceleme, Pending activities for today,Bugün için Bekleyen faaliyetler, Pension Funds,Emeklilik fonları, Percentage Allocation should be equal to 100%,Yüzde Tahsisi % 100'e eşit olmalıdır, Perception Analysis,Algı Analizi, Period,Dönem, -Period Closing Entry,Dönem Kapanış Kaydı, -Period Closing Voucher,Dönem Kapanış Fişi, -Periodicity,Periyodik olarak tekrarlanma, +Period Closing Entry,Dönem Kapanış Girişi, +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, @@ -1945,10 +1945,10 @@ Place Order,Sipariş, 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'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., +Plants and Machineries,Bitkiler ve Makinaları, +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, @@ -1957,15 +1957,15 @@ Please click on 'Generate Schedule','Takvim Oluştura' tıklayınız, 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, @@ -1973,18 +1973,18 @@ Please enter Delivery Date,Lütfen teslimat tarihini giriniz, Please enter Employee Id of this sales person,Bu satış kişinin Çalışan Kimliği giriniz, Please enter Expense Account,Gider Hesabı girin, Please enter Item Code to get Batch Number,Toplu Numarası almak için Ürün Kodu giriniz, -Please enter Item Code to get batch no,Batch (Parti) numarasını almak için lütfen Ürün Kodunu girin, -Please enter Item first,Lütfen Ürün Kodunu girin, +Please enter Item Code to get batch no,Toplu almak için Ürün Kodu girin, +Please enter Item first,Ürün Kodu girin, Please enter Maintaince Details first,Lütfen ilk önce Bakım Detayını girin, Please enter Planned Qty for Item {0} at row {1},Satır {1} deki {0} Ürünler için planlanan miktarı giriniz, Please enter Preferred Contact Email,Tercih İletişim Email giriniz, -Please enter Production Item first,Lütfen önce Üretim Ögesini giriniz, -Please enter Purchase Receipt first,Lütfen İlk Alış Fişini giriniz, -Please enter Receipt Document,Lütfen Fiş Belgesini giriniz, -Please enter Reference date,Referans tarihini girin, +Please enter Production Item first,Önce Üretim Ürününü giriniz, +Please enter Purchase Receipt first,İlk Satınalma Faturası giriniz, +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'yi Tarihe Göre Girin, +Please enter Woocommerce Server URL,Lütfen Woocommerce Sunucusu URL'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, @@ -1993,405 +1993,405 @@ Please enter default currency in Company Master,Lütfen Şirket Alanına varsay Please enter message before sending,Lütfen Göndermeden önce mesajı giriniz, Please enter parent cost center,Lütfen ana maliyet merkezi giriniz, Please enter quantity for Item {0},Lütfen Ürün {0} için miktar giriniz, -Please enter relieving date.,Lütfen hafifletme tarihini girin., -Please enter repayment Amount,Lütfen geri ödeme Tutarını giriniz, +Please enter relieving date.,Lütfen Boşaltma tarihi girin., +Please enter repayment Amount,geri ödeme miktarı giriniz, Please enter valid Financial Year Start and End Dates,Geçerli Mali Yılı Başlangıç ve Bitiş Tarihleri girin, Please enter valid email address,Lütfen geçerli e-posta adresini girin, Please enter {0} first,İlk {0} giriniz, 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'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'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'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'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}, Please save the patient first,Lütfen önce hastayı kaydedin, -Please save the report again to rebuild or update,Yeniden oluşturma veya güncelleme için lütfen raporu tekrar çalıştırma, +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} satırını karşı BOM'u seçin, +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 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 ürün ağacı ürün ağacı alanında 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ı seçiniz, -Please select Company,Şirket seçiniz, -Please select Company and Designation,Lütfen Şirket ve Atamayı seçiniz, -Please select Company and Posting Date to getting entries,Giriş almak için lütfen Şirket ve Gönderme Tarihini seçin., +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 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 Repair,Tamamlanan Onarım için Bitiş Tarihi Seçin, -Please select Course,Lütfen Kursu Seçin, +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 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 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 mi" "Stok Öğe mi" nerede "Evet" ise Birimini seçme 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ş Tarihini çalıştırın, -Please select Party Type first,İlk Cari Türünü 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 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 Hastayı seçin, -Please select Posting Date before selecting Party,Cariyi seçmeden önce Gönderme Tarihi seçiniz, -Please select Posting Date first,İlk Gönderme Tarihini Seçiniz, -Please select Price List,Fiyat Listesini seçiniz, -Please select Program,Lütfen programı seçiniz, -Please select Qty against item {0},Lütfen {0} boyutunu 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 Start Date and End Date for Item {0},Ürün {0} için Başlangıç ve Bitiş tarihini seçiniz, -Please select Student Admission which is mandatory for the paid student applicant,Lütfen hamile öğrenci kabulü için zorunlu Kabul Öğrencisini seçin, +Please select Patient to get Lab Tests,Lab Testleri almak için lütfen Hasta'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 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, -Please select a Batch for Item {0}. Unable to find a single batch that fulfills this requirement,Lütfen {0} Öğe için bir Toplu İşareti seçin. Bu bölümde tek bir toplu bulunamadı, -Please select a Company,Bir Şirket Seçiniz, -Please select a batch,Lütfen bir parça seçin, -Please select a csv file,Bir csv dosyasını seçiniz, +Please select a Batch for Item {0}. Unable to find a single batch that fulfills this requirement,Lütfen {0} Öğe için bir Toplu İşareti seçin. Bu gereksinimi karşılayan tek bir toplu bulunamadı, +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 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} teklif için bir değer seçiniz, +Please select a value for {0} quotation_to {1},{0} - {1} teklifi için bir değer seçiniz, Please select a warehouse,Lütfen bir depo seçiniz, -Please select at least one domain.,Lütfen en az bir alan adı seçiniz., +Please select at least one domain.,Lütfen en az bir alan adı seçin., Please select correct account,Doğru hesabı seçin, Please select date,tarih seçiniz, -Please select item code,Ürün kodunu seçiniz, +Please select item code,Ürün kodu seçiniz, Please select month and year,Ay ve yıl seçiniz, 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 kural koleksiyonu için lütfen Birden Çok Katmanlı Program türünü seçin., -Please select the assessment group other than 'All Assessment Groups',Lütfen 'Tüm Değerlendirme Grupları' sonraki değerlendirme gruplarını seçin., -Please select the document type first,Önce belgeyi seçiniz, -Please select weekly off day,Haftalık izin süresini seçiniz, -Please select {0},Lütfen {0} 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 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 Ek İndirim Uygulanır' lütfen, +Please set 'Apply Additional Discount On',Set 'On İlave İndirim Uygula' 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 Kar / 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} yöneticinizde varsayılan Envanter Hesabı olarak ayarlayın., -Please set B2C Limit in GST Settings.,Lütfen GST Ayarlarında B2C Sınırını ayarlayın., -Please set Company,Lütfen şirket ayarı, +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 Default Payroll Payable Account in Company {0},Şirket Standart Bordro Ödenecek Hesap ayarı {0}, -Please set Depreciation related Accounts in Asset Category {0} or Company {1},"Lütfen Değer Kaybı ile ilgili Hesapları, Varlık Kategorisi {0} veya Firma {1} içinde belirleyin", -Please set Email Address,E-posta Adresini ayarla, +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 Number of Depreciations Booked,Amortisman Sayısı göstergesi, -Please set Unrealized Exchange Gain/Loss Account in Company {0},Lütfen {0} suçlulardaki 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ü tablolar için çalışan paylaşımındaki Kullanıcı Kimliği Lütfen, -Please set a default Holiday List for Employee {0} or Company {1},Çalışan bir dahili Tatil Listesi seti Lütfen {0} veya Şirket {1}, -Please set account in Warehouse {0},Lütfen deposunu {0} 'da görüşü koy, -Please set an active menu for Restaurant {0},Lütfen restoran {0} için etkin bir menü ayarı yapın., -Please set associated account in Tax Withholding Category {0} against Company {1},Lütfen ilgili hesabı {1} suçlamaya 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 görünümü, -Please set default Cash or Bank account in Mode of Payment {0},{0} Ödeme biçiminde varsayılan nakit veya banka hesabı ayarınız, -Please set default account in Salary Component {0},Maaş Bileşeni varsayılan hesabı yetkili Lütfen {0}, +Please set Hotel Room Rate on {},Otel Oda Fiyatı'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 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 İK Ayarları'nda Onay Onay Bildirimi için varsayılan şablonu ayarı., -Please set default template for Leave Status Notification in HR Settings.,Lütfen İK Ayarları'nda Durum Bildirimi Bırakma için varsayılan şablonu ayarlayın., -Please set default {0} in Company {1},Şirket sunucusu {0} set Lütfen {1}, -Please set filter based on Item or Warehouse,Madde veya Depo tabanlı filtre ayarı, -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ı ayarı, -Please set recurring after saving,kaydettikten sonra yinelenen ayar, +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},Ş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 belirlemek için Öğrencinin E-posta Kimliği'ni ayarlayın., -Please set the Item Code first,Lütfen önce Öğe Kodu ayarı, +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 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ım serilerini 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,Şirket belirtiniz, -Please specify Company to proceed,Devam etmek için firma görüşü, -Please specify a valid 'From Case No.',Lütfen geçerlli bir 'durum nodan kaynaklı' belirtiniz, -Please specify a valid Row ID for row {0} in table {1},Tablodaki satır {0} için geçerli Satır ifadesi Belirtiniz {1}, -Please specify at least one attribute in the Attributes table,Nitelikler masada en az bir özellik görüyorum, +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}, +Please specify at least one attribute in the Attributes table,Nitelikler masada en az bir özellik belirtin, Please specify currency in Company,Şirket para belirtiniz, -Please specify either Quantity or Valuation Rate or both,Miktar veya Değerleme Br.Fiyatı ya da her değerlendirme de belirtiniz, +Please specify either Quantity or Valuation Rate or both,Miktar veya Değerleme Br.Fiyatı ya da her ikisini de belirtiniz, Please specify from/to range,Menzil / dan belirtiniz, -Please supply the specified items at the best possible rates,Lütfen belirtilen ürünleri mümkün olan en yüksek değerlerde sununuz, -Please update your status for this training event,Lütfen bu eğitim olayına ilişkin açıklamayı güncelleyin, +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 Currency not selected,Fiyat Listesi para birimini seçmiş, +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 ustası., +Price List master.,Fiyat Listesi alanı, Price List must be applicable for Buying or Selling,Fiyat Listesi Alış veya Satış için geçerli olmalıdır, Price List {0} is disabled or does not exist,Fiyat Listesi {0} devre dışı veya yok, Price or product discount slabs are required,Fiyat veya ürün indirimi levhaları gereklidir, 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 'Uygulama' alanı üzerinde dağıtım, 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 fiyat yüzdesini belli ölçütlere dayalı olarak geçersiz kılmak için yapılmıştır., +"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 {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 çiftleri, +Principal Amount,Anapara tutarı, Print Format,Yazdırma Formatı, Print IRS 1099 Forms,IRS 1099 Formlarını Yazdır, -Print Report Card,Kartı Rapor Yazdır, +Print Report Card,Rapor Kartı Yazdır, Print Settings,Yazdırma Ayarları, Print and Stationery,Baskı ve Kırtasiye, -Print settings updated in respective print format,"Yazdırma ayarları, ilgili baskı ağırlığı güncellendi", -Print taxes with zero amount,Sıfır etkileme vergileri yazdırın, +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, -Privilege Leave,Ayrıcalık izni, +Private Equity,Özel sermaye, +Privilege Leave,Privilege bırak, Probation,Deneme Süresi, -Probationary Period,Deneme Dönemi, -Procedure,Ameliyat, -Process Day Book Data,Günlük Defter Verisini İşle, +Probationary Period,Deneme süresi, +Procedure,prosedür, +Process Day Book Data,İşlem Günü Defteri Verileri, Process Master Data,Ana Verileri İşle, -Processing Chart of Accounts and Parties,Hesap Planını ve Tarafları İşleme, -Processing Items and UOMs,Öğeleri ve Birimleri İşleme, -Processing Party Addresses,Cari Adreslerinin İşlenmesi, -Processing Vouchers,Balık İşleme, -Procurement,Tedarik, -Produced Qty,Üretilen Miktar, +Processing Chart of Accounts and Parties,Hesapların ve Tarafların İşleme Tablosu, +Processing Items and UOMs,Öğeleri ve UOM'leri İşleme, +Processing Party Addresses,Parti Adreslerinin İşlenmesi, +Processing Vouchers,Fiş İşleme, +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 in the Fee Structure and Student Group {0} are different.,Ücret Yapısı ve Öğrenci Grubu {0} kalma 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'den fazla olamaz., Project Collaboration Invitation,Proje Ortak Çalışma Daveti, Project Id,Proje Kimliği, -Project Manager,Proje Yöneticisi, -Project Name,Proje Adı, +Project Manager,Proje Müdürü, +Project Name,proje Adı, Project Start Date,Proje Başlangıç Tarihi, -Project Status,Proje Durumu, +Project Status,Proje durumu, Project Summary for {0},{0} için Proje Özeti, -Project Update.,Proje Güncellemesi., +Project Update.,Proje Güncelleme., Project Value,Proje Bedeli, 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ğil, -Projected,Öngörülen, -Projected Qty,Öngörülen Miktar, +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 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, +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, +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 Tutarı, -Purchase Date,Satınalma Tarihi, -Purchase Invoice,Satınalma Faturası, -Purchase Invoice {0} is already submitted,Satınalma Faturası {0} zaten teslim edildi, +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ın alma Faturası {0} zaten teslim edildi, Purchase Manager,Satınalma Yöneticisi, -Purchase Master Manager,Satınalma Ana 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, Purchase Order Items not received on time,Satınalma Siparişi zamanında alınmamış, -Purchase Order number required for Item {0},Ürün {0} için Satınalma Siparişi numarası gerekli, +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,Satın Alma İrsaliyesi, Purchase Receipt {0} is not submitted,Satın alma makbuzu {0} teslim edilmedi, -Purchase Tax Template,Vergi Şablonu Satınalma, -Purchase User,Satınalma Kullanıcısı, -Purchase orders help you plan and follow up on your purchases,Satın alma siparişleri planı ve alışverişlerinizi takip edin, +Purchase Tax Template,Vergi Şablon Satınalma, +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ç uzaydan biri olmalıdır: {0}, +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, -Qualification,Yeterlilik, +Qty Total,Adet Toplam, +Qty for {0},Için Adet {0}, +Qualification,{0}Yeterlilik{/0} {1} {/1}, Quality,Kalite, -Quality Action,Kalite İşlemi, -Quality Goal.,Kalite Hedefi., -Quality Inspection,Kalite Kontrol, -Quality Inspection: {0} is not submitted for the item: {1} in row {2},"Kalite Denetimi: {0}, {2} verisindeki öğeye göndermez: {2}", +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 İnceleme, -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'dan büyük olmalıdır, +Quantity to Make,Miktarı, +Quantity to Manufacture must be greater than 0.,Üretim Miktar 0'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 listeye 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 Listesinde en son fiyat güncellemek için bekletildi. Birkaç dakika sürüyor., -Quick Journal Entry,Hızlı Yevmiye Girişi, -Quot Count,Teklif Sayısı, +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ı Kayıt Girdisi, +Quot Count,Kontör Sayısı, Quot/Lead %,Teklif/Müşteri Adayı yüzdesi, Quotation,Fiyat Teklifi, Quotation {0} is cancelled,Teklif {0} iptal edildi, -Quotation {0} not of type {1},Teklif {0} {1} türü, +Quotation {0} not of type {1},Teklif {0} {1} türünde, Quotations,Fiyat Teklifleri, -"Quotations are proposals, bids you have sent to your customers","Alıntılar, kapsamlılaştırmaya yönelik adres önerileri önerileri", -Quotations received from Suppliers.,tedarikçilerden alınan teklifler., +"Quotations are proposals, bids you have sent to your customers","Alıntılar, müşterilerinize gönderilen adres teklifler önerileri şunlardır", +Quotations received from Suppliers.,Tedarikçilerden alınan teklifler., Quotations: ,Fiyat Teklifleri, -Quotes to Leads or Customers.,Müşterilere veya Adaylara verilen Teklifler., +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., 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,Fiş belge teslim edilmelidir, -Receivable,Alacak, +Receipt document must be submitted,Makbuz belge teslim edilmelidir, +Receivable,alacak, Receivable Account,Alacak Hesabı, Received,Alındı, -Received On,Alınan Tarih, +Received On,Açık Alınan, Received Quantity,Alınan Miktar, 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, -Redirect URL,Yönlendirme URL'si, +Records,kayıtlar, +Redirect URL,Yönlendirme URL, Ref,Ref, -Ref Date,Referans Tarihi, +Ref Date,Ref Tarihi, Reference,Referans, Reference #{0} dated {1},Referans # {0} tarihli {1}, Reference Date,Referans Tarihi, -Reference Doctype must be one of {0},Referans Belgesi biri olmalı {0}, -Reference Document,Referans Belgesi, +Reference Doctype must be one of {0},Referans Doctype biri olmalı {0}, +Reference Document,referans Belgesi, Reference Document Type,Referans Belge Türü, Reference No & Reference Date is required for {0},Referans No ve Referans Tarihi gereklidir {0}, -Reference No and Reference Date is mandatory for Bank transaction,Referans No ve Referans Tarih Banka işlem verileri, -Reference No is mandatory if you entered Reference Date,Referans Tarihi girerseniz Referans No saldırganlar, -Reference No.,Referans No., -Reference Number,Referans Numarası, -Reference Owner,Referans Sahibi, +Reference No and Reference Date is mandatory for Bank transaction,Referans No ve Referans Tarih Banka işlem için zorunludur, +Reference No is mandatory if you entered Reference Date,Referans Tarihi girdiyseniz Referans No zorunludur, +Reference No.,Referans Numarası., +Reference Number,Referans numarası, +Reference Owner,referans Sahibi, Reference Type,Referans Tipi, "Reference: {0}, Item Code: {1} and Customer: {2}","Referans: {0}, Ürün Kodu: {1} ve Müşteri: {2}", -References,Referanslar, -Refresh Token,Token Yenile, +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, -Remove item if charges is not applicable to that item,Bu öğe için ücret/masraf uygulanmıyorsa öğeyi kaldırın, +Reminder to update GSTIN Sent,GSTIN'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., -Replied,Yanıtlandı, -Replies,Yanıtlar, +Replace BOM and update latest price in all BOMs,Tüm BOM'larda BOM'u değiştirin ve en son fiyatı güncelleyin., +Replied,Cevaplandı, +Replies,Cevaplar, Report,Rapor, Report Builder,Rapor Oluşturucu, Report Type,Rapor Türü, Report Type is mandatory,Rapor Tipi zorunludur, Reports,Raporlar, -Reqd By Date,Talep Tarihi, -Reqd Qty,Talep Miktarı, -Request for Quotation,Teklif Talebi, -Request for Quotations,Teklif Talepleri, +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 quotation.,Teklif Talebi., -Requested Qty,İstenen Miktar, +Request for purchase.,Satın alma talebi, +Request for quotation.,Fiyat Teklif Talebi., +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 Talep ediyor, +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, -Reserve Warehouse,Rezerv Deposu, +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, Reserved Qty for Production: Raw materials quantity to make manufacturing items.,Üretim İçin Ayrılmış Miktar: İmalat kalemlerini yapmak için hammadde miktarı., -"Reserved Qty: Quantity ordered for sale, but not delivered.","Ayrılan Miktar: Satış için sipariş verildi, ancak teslim edilmeyen miktar.", +"Reserved Qty: Quantity ordered for sale, but not delivered.","Ayrılan Miktar: Satış için sipariş edilen, ancak teslim edilmeyen miktar.", 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ı, -Resistant,Dayanıklı, +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, Rest Of The World,Dünyanın geri kalanı, @@ -2404,16 +2404,16 @@ Retail,Perakende, 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ı, -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 edildi, +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, @@ -2427,154 +2427,154 @@ 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}: Serial No is mandatory,Satır # {0}: Seri No, +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ı, Row #{0} (Payment Table): Amount must be positive,Sıra # {0} (Ödeme Tablosu): Miktarın pozitif olması gerekir, Row #{0}: Account {1} does not belong to company {2},"Sıra # {0}: Hesap {1}, şirkete {2} ait değil", -Row #{0}: Allocated Amount cannot be greater than outstanding amount.,"Sıra # {0}: Tahsis Edilen Miktar, ödenmemiş tutarlardan büyük olamaz.", -"Row #{0}: Asset {1} cannot be submitted, it is already {2}","Satır {0}: Sabit Kıymet {1} gönderilemedi, zaten {2}", -Row #{0}: Cannot set Rate if amount is greater than billed amount for Item {1}.,Satır # {0}: Öğe {1} için faturalanan tutarlardan 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 taşıyıcıları önce olamaz {2}, -Row #{0}: Duplicate entry in References {1} {2},Satır # {0}: Referanslarda sonlandırmış girmiş {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}: Allocated Amount cannot be greater than outstanding amount.,"Sıra # {0}: Tahsis Edilen Miktar, ödenmemiş tutardan büyük olamaz.", +"Row #{0}: Asset {1} cannot be submitted, it is already {2}","Satır {0}: Sabit Varlık {1} gönderilemedi, zaten {2}", +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ı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}: Not allowed to change Supplier as Purchase Order already exists,Satır # {0}: Sipariş zaten var olduğu tedarikçisi değiştirmek için izin verilmez, -Row #{0}: Please set reorder quantity,Satır # {0}: yeniden satınalma yetkisi Lütfen, +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ırıldı, +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ü, Gider Talebi veya Yevmiye Kaydı 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ınalma Emri biri, Satınalma Fatura veya günlük girmesi gerekir", -Row #{0}: Rejected Qty can not be entered in Purchase Return,Satır # {0}: Miktar Satınalma İade girilemez Reddedildi, -Row #{0}: Rejected Warehouse is mandatory against rejected Item {1},Satır # {0}: Depo Reddedildi reddedilen Öğeye karşı dosyalar {1}, +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}: öğe için Set Tedarikçisi {1}, +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 sahiptir. Lütfen {3} adet mevcut olan başka bir partiyi seçin veya bilgiyi birden çok partiye dağıtmak / yayınlamak için bilgi birdenbire çok satıra bölünür., +"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}, Row #{0}: {1} can not be negative for item {2},Satır # {0}: {1} öğe için negatif olamaz {2}, 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 işleminin karşı işlemi yapılması gerekiyor, -Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2},"Satır {0} # Tahsis edilen tutarlar {1}, talep edilmeyen tutarlardan {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}# Paid Amount cannot be greater than requested advance amount,Satır {0} # Ödenen Miktar istenen avans kadar büyük olamaz, -Row {0}: Activity Type is mandatory.,Satır {0}: Faaliyet Türü., -Row {0}: Advance against Customer must be credit,Satır {0}: Müşteriye karşı Avans kredisi olmalı, -Row {0}: Advance against Supplier must be debit,Satır {0}: Tedarikçiye karşı Avans ödemesi gerekir, -Row {0}: Allocated amount {1} must be less than or equals to Payment Entry amount {2},Satır {0}: Ayrılık miktarı {1} daha az olması veya Ödeme giriş miktarının büyüklüğü olması 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 yüce fatura miktarı eşit olmalıdır {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ın Alma Siparişi {3} 'den {2}' 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ı, +Row {0}: Advance against Supplier must be debit,Satır {0}: Tedarikçi karşı Advance debit gerekir, +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}: Malzeme Listesi Öğe için bulunamadı {1}, -Row {0}: Conversion Factor is mandatory,Satır {0}: Dönüşüm tüketimi tüketimi, -Row {0}: Cost center is required for an item {1},{0} Satırı: {1} öğe için maliyet merkezi gerekiyor, -Row {0}: Credit entry can not be linked with a {1},Satır {0}: Kredi girişi ile bağlantılı olamaz bir {1}, -Row {0}: Currency of the BOM #{1} should be equal to the selected currency {2},Satır {0}: BOM # Döviz {1} seçilen para birimine eşit olmalıdır {2}, -Row {0}: Debit entry can not be linked with a {1},Satır {0}: Banka girişi ile bağlantılı olamaz bir {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}, +Row {0}: Currency of the BOM #{1} should be equal to the selected currency {2},Satır {0}: BOM # Döviz {1} seçilen para birimi eşit olmalıdır {2}, +Row {0}: Debit entry can not be linked with a {1},Satır {0}: Banka giriş ile bağlantılı edilemez bir {1}, Row {0}: Depreciation Start Date is required,Satır {0}: Amortisman Başlangıç Tarihi gerekli, -Row {0}: Enter location for the asset item {1},Satır {0}: {1} varlık varlığı için yer girin, -Row {0}: Exchange Rate is mandatory,Satır {0}: Döviz Kuru cezaları, +Row {0}: Enter location for the asset item {1},Satır {0}: {1} varlık öğesi için yer girin, +Row {0}: Exchange Rate is mandatory,Satır {0}: Döviz Kuru zorunludur, Row {0}: Expected Value After Useful Life must be less than Gross Purchase Amount,Satır {0}: Faydalı Ömürden Sonra Beklenen Değer Brüt Alım Tutarından daha az olmalıdır, -Row {0}: From Time and To Time is mandatory.,Satır {0}: From Time ve Zaman için bakımları., +Row {0}: From Time and To Time is mandatory.,Satır {0}: From Time ve Zaman için zorunludur., Row {0}: From Time and To Time of {1} is overlapping with {2},Satır {0}: Zaman ve zaman {1} ile örtüşen {2}, -Row {0}: From time must be less than to time,{0} Satırı: Zamandan duyguları az olmalı, +Row {0}: From time must be less than to time,{0} Satırı: Zamandan zamandan az olmalıdır, Row {0}: Hours value must be greater than zero.,Satır {0}: Saat değeri sıfırdan büyük olmalıdır., Row {0}: Invalid reference {1},Satır {0}: Geçersiz başvuru {1}, -Row {0}: Party / Account does not match with {1} / {2} in {3} {4},Satır {0}: Cari / Hesap ile eşleşmiyor {1} / {2} içinde {3} {4}, +Row {0}: Party / Account does not match with {1} / {2} in {3} {4},Satır {0}: Parti / Hesap ile eşleşmiyor {1} / {2} içinde {3} {4}, Row {0}: Party Type and Party is required for Receivable / Payable account {1},Satır {0}: Parti Tipi ve Parti Alacak / Borç hesabı için gerekli olan {1}, Row {0}: Payment against Sales/Purchase Order should always be marked as advance,Satır {0}: Satış / Satınalma Siparişi karşı Ödeme hep avans olarak işaretlenmiş olmalıdır, -Row {0}: Please check 'Is Advance' against Account {1} if this is an advance entry.,Satır {0}: Kontrol edin Hesabı karşı 'Advance mı' {1} Bu bir avans girişi ise., +Row {0}: Please check 'Is Advance' against Account {1} if this is an advance entry.,Satır {0}: kontrol edin Hesabı karşı 'Advance mı' {1} Bu bir avans giriş ise., Row {0}: Please set at Tax Exemption Reason in Sales Taxes and Charges,{0} Satırı: Lütfen Satış Vergileri ve Masraflarında Vergi Muafiyeti Nedeni ayarını yapın, -Row {0}: Please set the Mode of Payment in Payment Schedule,{0} Satırı: Lütfen Ödeme Planında Ödeme Modu ayarı, -Row {0}: Please set the correct code on Mode of Payment {1},{0} Satırı: Lütfen {1} Ödeme Modunda doğru kodu ayarı, -Row {0}: Qty is mandatory,Satır {0}: Miktar cezaları, -Row {0}: Quality Inspection rejected for item {1},{0} Satırı: {1} kalem için Kalite Denetimi reddedildi, -Row {0}: UOM Conversion Factor is mandatory,Satır {0}: Ölçü Birimi Dönüşüm Faktörü Hizmetleri, -Row {0}: select the workstation against the operation {1},{0} bilgisi: {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} Numara için seri numarası gerekli. {3} adresini verdiniz., -Row {0}: {1} must be greater than 0,{0} bilgisi: {1} 0'dan büyük olmalı, +Row {0}: Please set the Mode of Payment in Payment Schedule,{0} Satırı: Lütfen Ödeme Planında Ödeme Modunu ayarlayın, +Row {0}: Please set the correct code on Mode of Payment {1},{0} Satırı: Lütfen {1} Ödeme Modunda doğru kodu ayarlayın, +Row {0}: Qty is mandatory,Satır {0}: Miktar zorunludur, +Row {0}: Quality Inspection rejected for item {1},{0} Satırı: {1} kalemi için Kalite Denetimi reddedildi, +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} {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 dosyalarına sahip satırlar bulundu: {0}, -Rules for adding shipping costs.,Nakliye masraflarını yükleme Kuralları., -Rules for applying pricing and discount.,Fiyatlandırma ve indirim için kurallar., -S.O. No.,Satış Siparişi No, +Rows with duplicate due dates in other rows were found: {0},Diğer satırlardaki yinelenen teslim tarihlerine sahip satırlar bulundu: {0}, +Rules for adding shipping costs.,Nakliye maliyetleri ekleme Kuralları., +Rules for applying pricing and discount.,Fiyatlandırma ve indirim uygulanması için kurallar., +S.O. No.,Satış Emri No, SGST Amount,SGST Tutarı, SO Qty,SO Adet, Safety Stock,Emniyet Stoğu, Salary,Maaş, -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 tahrik edilen, -Salary Slip of employee {0} already created for time sheet {1},çalışanın maaş Kuponu {0} zaten zaman ayırmak için çalışanlar {1}, -Salary Slip submitted for period from {0} to {1},{0} 'dan {1}' e kadar dönem için maaş yardımı, +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 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 Maaş Yapısı ibraz edilmelidir, +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 miktarına 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 başvuru yapılamaz süreler arası dönem için işlenmiş.", -Sales,Satış, -Sales Account,Satış Hesabı, +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ış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önetici, +Sales Manager,Satış Müdürü, +Sales Master Manager,Satış Master Müdürü, Sales Order,Satış Siparişi, -Sales Order Item,Sipariş Satış Kalemi, -Sales Order required for Item {0},Ürün {0}için Satış Sipariş gerekli, +Sales Order Item,Satış Sipariş Ürünü, +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ış Pipeline, +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ğil, +Sales orders are not available for production,Satış siparişleri üretim için mevcut değildir, Salutation,Hitap, -Same Company is entered more than once,Aynı şirket birden fazla kızılır, +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., -Same supplier has been entered multiple times,Aynı tedarikçi birden fazla kez girilmiş, +Same supplier has been entered multiple times,Aynı Tedarikçi birden fazla kez girilmiş, Sample,Numune, -Sample Collection,Örnek Koleksiyon, -Sample quantity {0} cannot be more than received quantity {1},"Örnek miktarı {0}, alınan miktarn {1} fazla olamaz.", -Sanctioned,seçildi, -Sanctioned Amount,tasdik edilmiş tutarlar, +Sample Collection,Örnek koleksiyon, +Sample quantity {0} cannot be more than received quantity {1},"Örnek miktarı {0}, alınan miktardan {1} fazla 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,Kaydedilmiş, Saving {0},{0} kaydediliyor, Scan Barcode,Barkod Tara, -Schedule,Planla, +Schedule,program, Schedule Admission,Program Kabulü, -Schedule Course,Program Dersi, +Schedule Course,Program Ders, Schedule Date,Program Tarihi, -Schedule Discharge,Program Deşarjisi, +Schedule Discharge,Program Deşarjı, Scheduled,Planlandı, -Scheduled Upto,Şu tarihe kadar planlandı:, -"Schedules for {0} overlaps, do you want to proceed after skiping overlaped slots ?","{0} için program sınırlıyor, kesişen yuvaları attıktan sonra devam ettirmek istiyor musunuz?", +Scheduled Upto,Zamanlanmış Upto, +"Schedules for {0} overlaps, do you want to proceed after skiping overlaped slots ?","{0} için program çakışıyor, çakışan yuvaları atladıktan sonra devam etmek istiyor musunuz?", Score cannot be greater than Maximum Score,Skor Maksimum Skor daha büyük olamaz, Score must be less than or equal to 5,Skor 5'ten az veya eşit olmalıdır, Scorecards,Skor kartları, -Scrapped,Hurdaya çıkmış, -Search,arama, +Scrapped,Hurda edilmiş, +Search,Arama, Search Results,arama sonuçları, -Search Sub Assemblies,Arama Alt Kurulları, +Search Sub Assemblies,Arama Alt Kurullar, "Search by item code, serial number, batch no or barcode","Ürün kodu, seri numarası, parti numarası veya barkod ile arama", -"Seasonality for setting budgets, targets etc.","Ayar bütçeleri, hedefler vb Mevsimselliği", -Secret Key,Gizli şifre, +"Seasonality for setting budgets, targets etc.","Ayar bütçeler, hedefler vb Mevsimselliği", +Secret Key,Gizli anahtar, Secretary,Sekreter, Section Code,Bölüm Kodu, Secured Loans,Teminatlı Krediler, @@ -2582,227 +2582,227 @@ Securities & Commodity Exchanges,Teminatlar ve Emtia Borsaları, Securities and Deposits,Teminatlar ve Mevduatlar, See All Articles,Tüm Makaleleri Gör, See all open tickets,Tüm açık biletlere bakın, -See past orders,Geçmiş satınalmalara bakın, +See past orders,Geçmiş siparişlere bakın, See past quotations,Geçmiş alıntılara bakın, Select,Seç, Select Alternate Item,Alternatif Öğe Seç, -Select Attribute Values,Özel Değerlerini Seç, -Select BOM,BOM Ürün Ağacı Seç, -Select BOM and Qty for Production,Üretim için BOM ve Miktar Seçin, +Select Attribute Values,Özellik Değerlerini Seç, +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,Toplu iş seç, Select Batch Numbers,Toplu Numaraları Seç, -Select Brand...,Marka Seçiniz..., +Select Brand...,Marka Seçiniz ..., Select Company,Şirket Seç, -Select Company...,Firma Seçin..., +Select Company...,Firma Seçin ..., Select Customer,Müşteri Seç, Select Days,Günleri Seç, -Select Default Supplier,Seçilmiş varsayılan tedarikçi, -Select DocType,Belge Tipi Seçin, -Select Fiscal Year...,Mali Yıl Seç..., -Select Item (optional),Öğe Seçin (isteğe bağlı), +Select Default Supplier,Seç Varsayılan Tedarikçi, +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 Ürünleri Seç, -Select Loyalty Program,Sadakat Programı Seç, -Select Patient,Hastayı Seçin, -Select Possible Supplier,Olası Tedarikçiyi Seçin, -Select Property,Özellik 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 Depoyu Seç, -Select Warehouse...,Depo Seçiniz..., -Select an account to print in account currency,Hesap para birimi boyutu yazdırılacak bir hesap seçin, +Select Target Warehouse,Hedef Ambarı'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., Select at least one value from each of the attributes.,Her bir özellikten en az bir değer seçin., -Select change amount account,Tutar hesabını değiştiri seç, +Select change amount account,Seç değişim miktarı hesabı, Select company first,Önce şirketi seç, -Select students manually for the Activity based Group,Etkinliğe Dayılı Grup için platformları manuel olarak seçin, -Select the customer or supplier.,Müşteri veya tedarikçisini seçin., -Select the nature of your business.,taşıdığın mesajı seç., -Select the program first,Önce programını seçin, -Select to add Serial Number.,Seri numarasını dahil etmek için seçin., +Select students manually for the Activity based Group,Etkinliğe Dayalı Grup için öğrencileri manuel olarak seçin, +Select the customer or supplier.,Müşteri veya tedarikçiyi seçin., +Select the nature of your business.,işinizin doğası seçin., +Select the program first,Önce programı seçin, +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 merkezlerine sahip olmalıdır., -Sell,Sat, +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,Satmak, Selling,Satış, Selling Amount,Satış Tutarı, Selling Price List,Satış Fiyatı Listesi, Selling Rate,Satış oranı, -"Selling must be checked, if Applicable For is selected as {0}",Uygulanabilir {0} olarak seçilirse satış işaretlenmelidir, -Send Grant Review Email,Hibe incelemesi E-postasını gönder, +"Selling must be checked, if Applicable For is selected as {0}",Uygulanabilir {0} olarak seçildiyse satış işaretlenmelidir, +Send Grant Review Email,Grant İnceleme E-postasını gönder, Send Now,Şimdi Gönder, -Send SMS,SMS Gönder, +Send SMS,SMS gönder, Send mass SMS to your contacts,Kişilerinize toplu SMS Gönder, Sensitivity,Duyarlılık, -Sent,Gönderildi, -Serial No and Batch,Seri No ve Parti (Batch), -Serial No is mandatory for Item {0},Ürün {0} için Seri no cezaları, +Sent,Gönderilen, +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 Delivery Note {1},Seri No {0} İrsaliye {1} e 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, -Serial No {0} does not belong to any Warehouse,Seri Hayır {0} herhangi Depo ait değil, +Serial No {0} does not belong to Warehouse {1},Seri No {0} Depo {1} e ait değil, +Serial No {0} does not belong to any Warehouse,Seri Hayır {0} herhangi Warehouse ait değil, Serial No {0} does not exist,Seri No {0} yok, Serial No {0} has already been received,Seri No {0} zaten alınmış, -Serial No {0} is under maintenance contract upto {1},Seri No {0} Bakım sözleşmesi {1} çalıştırdığında bakımda, -Serial No {0} is under warranty upto {1},Seri No {0} {1} tarihinden itibaren garantide, +Serial No {0} is under maintenance contract upto {1},Seri No {0} Bakım sözleşmesi {1} uyarınca bakımda, +Serial No {0} is under warranty upto {1},Seri No {0} {1} uyarınca garantide, Serial No {0} not found,Bulunamadı Seri No {0}, Serial No {0} not in stock,Seri No {0} stokta değil, Serial No {0} quantity {1} cannot be a fraction,Seri No {0} miktar {1} kesir olamaz, 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 yapılıyordu: {1}", +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} bilgisindeki 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, Series Updated,Serisi Güncellendi, -Series Updated Successfully,Seri başarı güncellendi, -Series is mandatory,Seri askerler, -Series {0} already used in {1},Seriler {0} {1} de zaten kullanılmış, -Service,Hizmet, -Service Expense,Hizmet Masrafı, -Service Level Agreement,Hizmet Seviyesi Anlaşması, -Service Level Agreement.,Hizmet Seviyesi Anlaşması., -Service Level.,Hizmet Seviyesi., +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,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", -Services,Hizmetler, -"Set Default Values like Company, Currency, Current Fiscal Year, etc.","Şirket, Para Birimi, Mali yıl vb gibi standart değerleri ayarlar", +Service Stop Date cannot be before Service Start Date,"Hizmet Durdurma Tarihi, Hizmet Başlangıç Tarihi'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, Set New Release Date,Yeni Yayın Tarihi Ayarla, -Set Project and all Tasks to status {0}?,Proje ve Tüm Görevler {0} hesabı ayarlansın mı?, +Set Project and all Tasks to status {0}?,Proje ve Tüm Görevler {0} durumuna ayarlansın mı?, Set Status,Durumu Ayarla, -Set Tax Rule for shopping cart,Alışveriş sepeti için ayarlanan Vergi Kural, +Set Tax Rule for shopping cart,Alışveriş sepeti için ayarla Vergi Kural, Set as Closed,Kapalı olarak ayarla, Set as Completed,Tamamlandı olarak ayarla, Set as Default,Varsayılan olarak ayarla, Set as Lost,Kayıp olarak ayarla, Set as Open,Açık olarak ayarlayın, -Set default inventory account for perpetual inventory,Sürekli envanter için harici envanter hesabı ayarlandı, +Set default inventory account for perpetual inventory,Sürekli envanter için varsayılan envanter hesabı ayarla, Set this if the customer is a Public Administration company.,Müşteri bir Kamu İdaresi şirketiyse bunu ayarlayın., -Set {0} in asset category {1} or company {2},{1} varlık sınıfı veya {2} şirkette {0} ayarı, -"Setting Events to {0}, since the Employee attached to the below Sales Persons does not have a User ID{1}","Olayları çalıştırma {0}, Satış Kişilerin altına bağlı çalışan bir kullanıcının eserine sahip çalıştırma {1}", -Setting defaults,Varsayılanları Ayarlama, -Setting up Email,E-posta Kurulumu, +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 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 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,hayalet, +Settled,yerleşik, Setup Gateway accounts.,Kur Gateway hesapları., -Setup SMS gateway settings,Kurulum SMS ağ ayarları ayarları, -Setup cheque dimensions for printing,Baskı için Kurulum onay dosyaları, -Setup default values for POS Invoices,POS Faturaları için varsayılan değerler ayarı, -Setup mode of POS (Online / Offline),POS'un kurulum modu (Çevrimiçi / Çevrimdışı), +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,Bakiye Paylaş, -Share Ledger,Defteri Paylaş, +Share Ledger,Defteri Birlikte Paylaş, Share Management,Paylaşım Yönetimi, -Share Transfer,Transferi Paylaş, +Share Transfer,Paylaşım Transferi, Share Type,Paylaşım Türü, Shareholder,Hissedar, -Ship To State,Eyalete Gönderim, +Ship To State,Devlete Gemi, Shipments,Gönderiler, Shipping,Nakliye, -Shipping Address,Nakliye Adresi, +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 kuralları yalnızca Alış için geçerlidir, -Shipping rule only applicable for Selling,Nakliye kurallarının yalnızca Satış için geçerlidir, -Shopify Supplier,Shopify tedarikçisi, +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çi, Shopping Cart,Alışveriş Sepeti, Shopping Cart Settings,Alışveriş Sepeti Ayarları, Short Name,Kısa Adı, -Shortage Qty,Yetersizlik Mik, +Shortage Qty,Yetersizlik adeti, Show Completed,Tamamlananları Göster, Show Cumulative Amount,Kümülatif Tutarı Göster, Show Employee,Çalışanı Göster, -Show Open,Açık olanları öster, -Show Opening Entries,Açılış Kayıtlarını Göster, +Show Open,Açık olanları göster, +Show Opening Entries,Açılış Girişlerini Göster, Show Payment Details,Ödeme Ayrıntılarını Göster, -Show Return Entries,İade Kayıtlarını Göster, +Show Return Entries,İade Girişlerini Göster, Show Salary Slip,Göster Maaş Kayma, Show Variant Attributes,Varyant Özelliklerini Göster, Show Variants,Göster Varyantlar, -Show closed,Kapalı olanları Göster, -Show exploded view,Genişletilmiş görünüm gösterisi, +Show closed,Kapalı olanları göster, +Show exploded view,Genişletilmiş görünümü göster, Show only POS,Sadece POS göster, -Show unclosed fiscal year's P&L balances,Kapatılmamış mali yılın K&Z bakiyelerini göster, +Show unclosed fiscal year's P&L balances,kapanmamış mali yılın P & L dengeleri göster, Show zero values,Sıfır değerleri göster, -Sick Leave,Hastalık İzni, -Silt,Alüvyon, -Single Variant,Tek Varyant, -Single unit of an Item.,Bir Öğenin 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şı olduklarında, aşağıdaki çalışanlar için Ayrılmayı Bırakma. {0}", -"Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}","Aşağıdaki çalışanlar için Maaş Yapısı Ataması kayıtları zaten mülkü olduğu için, Maaş Yapısı Ataması kayıtları zaten atılmıştır. {0}", +Sick Leave,Hastalık izni, +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}", +"Skipping Salary Structure Assignment for the following employees, as Salary Structure Assignment records already exists against them. {0}","Aşağıdaki çalışanlar için Maaş Yapısı Ataması kayıtları zaten aleyhine olduğu için, Maaş Yapısı Ataması kayıtları zaten atlanmıştır. {0}", Slideshow,Slayt Gösterisi, Slots for {0} are not added to the schedule,{0} için yuvalar programa eklenmez, 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 bileşenleri 100'e kadar eklemez, +Soil compositions do not add up to 100,Zemin kompozisyonları 100'e kadar eklemez, Sold,Satıldı, Some emails are invalid,Bazı e-postalar geçersiz, Some information is missing,Bazı bilgiler eksik, Something went wrong!,Bir şeyler yanlış gitti!, -"Sorry, Serial Nos cannot be merged","Üzgünüz, seri numaraları birleştiremiyor", +"Sorry, Serial Nos cannot be merged","Üzgünüz, seri numaraları birleştirilemiyor", Source,Kaynak, -Source Name,Kaynak Adı, +Source Name,kaynak Adı, Source Warehouse,Kaynak Depo, -Source and Target Location cannot be same,Kaynak ve Hedef Konum aynı olamaz, +Source and Target Location cannot be same,Kaynak ve Hedef Konumu aynı olamaz, Source and target warehouse cannot be same for row {0},Kaynak ve hedef depo Satır {0} için aynu olamaz, Source and target warehouse must be different,Kaynak ve hedef depo farklı olmalıdır, Source of Funds (Liabilities),Fon kaynakları (Yükümlülükler), -Source warehouse is mandatory for row {0},Satır {0} Kaynak deposu verileri, +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,Batch/Parti 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} Kişisel Planı zaten mevcut, +Staffing Plan {0} already exist for designation {1},{1} atanması için {0} Personel Planı zaten mevcut, Standard,Standart, -Standard Buying,Standart Alış, -Standard Selling,Standart Satış, -Standard contract terms for Sales or Purchase.,Satış veya Satınalma için standart sözleşme hükümleri., +Standard Buying,Standart Satın Alma, +Standard Selling,Standart satış, +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ı, "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} hesaplayamıyor", -"Start and end dates not in a valid Payroll Period, cannot calculate {0}.","Başlangıç ve bitiş süreleri geçerli bir Bordro Döneminde değil, {0} değeri hesaplayamaz.", -Start date should be less than end date for Item {0},Başlangıç tarihi Ürün {0} için bitiş çizgisi 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ş süreleri daha az olmalıdır, -Start day is greater than end day in task '{0}',"Başlangıç gününde, '{0}' Görev bitiş tarihinden daha büyük", +"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şla, -State,Durumu, -State/UT Tax,Eyalet / UT Vergisi, +State,"Belirtmek, bildirmek", +State/UT Tax,Devlet / UT Vergisi, Statement of Account,Hesap Beyanı, -Status must be one of {0},Durum aşağıdakilerden biri olmalıdır: {0}, +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,Hazır Varlıklar, -Stock Available,Stok Mevcudu, -Stock Balance,Stok Bakiyesi, +Stock Available,Stok mevcut, +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 Giriş {0} kaydı, +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 Ledger Entries and GL Entries are reposted for the selected Purchase Receipts,Stok Defteri ve Defter-i Kebir Kayıtları seçilen Satınalma Fişleri için yeniden muhasebeleştirilir, -Stock Levels,Stok Seviyeleri, +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 Liabilities,Stok Yükümlülükleri, Stock Options,Stok Seçenekleri, Stock Qty,Stok Miktarı, -Stock Received But Not Billed,Alınmış ancak faturasız stok, +Stock Received But Not Billed,Alınmış ancak faturalanmamış stok, Stock Reports,Stok Raporları, Stock Summary,Stok Özeti, Stock Transactions,Stok İşlemleri, @@ -2810,12 +2810,12 @@ Stock UOM,Stok Ölçü Birimi, 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ş olmalı {0}, -Stock cannot exist for Item {0} since has variants,Ürün için var olamaz Stok {0} yana öngörüleri vardır, +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,Durdur, +Stop,dur, Stopped,Durduruldu, -"Stopped Work Order cannot be cancelled, Unstop it first to cancel","Durdurulan İş Emri iptal etmek istiyor, İptal etmeden önce kaldır", +"Stopped Work Order cannot be cancelled, Unstop it first to cancel","Durdurulan İş Emri iptal edilemez, İptal etmeden önce kaldır", Stores,Mağazalar, Structures have been assigned successfully,Yapılar başarıyla atandı, Student,Öğrenci, @@ -2823,40 +2823,40 @@ Student Activity,Öğrenci Etkinliği, Student Address,Öğrenci Adresi, Student Admissions,Öğrenci Kabulleri, Student Attendance,Öğrenci Seyirci, -"Student Batches help you track attendance, assessments and fees for students","Öğrenci Partileri Eğer öğrenciler için kazanma, değerlendirme ve ücretler izlemenize yardımcı olur", +"Student Batches help you track attendance, assessments and fees for students","Öğrenci Partileri Eğer öğrenciler için katılım, değerlendirme ve ücretler izlemenize yardımcı", Student Email Address,Öğrenci E-posta Adresi, Student Email ID,Öğrenci E-posta Kimliği, -Student Group,öğrenci grubu, +Student Group,Öğrenci grubu, Student Group Strength,Öğrenci Grubu Gücü, Student Group is already updated.,Öğrenci Grubu zaten güncellendi., Student Group: ,Öğrenci Grubu:, Student ID,Öğrenci Kimliği, Student ID: ,Öğrenci Kimliği:, Student LMS Activity,Öğrenci LMS Etkinliği, -Student Mobile No.,Öğrenci Cep No, +Student Mobile No.,Öğrenci Mobil No, Student Name,Öğrenci adı, Student Name: ,Öğrenci adı:, Student Report Card,Öğrenci Rapor Kartı, -Student is already enrolled.,Öğrenci zaten kayıtlıdır., +Student is already enrolled.,Öğrenci zaten kayıtlı olduğu., Student {0} - {1} appears Multiple times in row {2} & {3},Öğrenci {0} - {1} satırda birden çok kez görünür {2} {3}, -Student {0} does not belong to group {1},{0} öğrenci {1} grubu ait değil, -Student {0} exist against student applicant {1},Öğrenci {0} öğrenci başvurusu karşı mevcut {1}, -"Students are at the heart of the system, add all your students","Öğrencilerin kalbinin atılması, tüm öğrencilerin alınması sağlanır", +Student {0} does not belong to group {1},{0} öğrencisi {1} grubuna ait değil, +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, -Submit,Gönder/İşle, +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ı, @@ -2868,8 +2868,8 @@ Summary,özet, 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, @@ -2880,42 +2880,42 @@ Supplier Name,Tedarikçi Adı, 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ının aşıldığı için geçici olarak devre dışı bırakıldı, -Syntax error in condition: {0},Durumdaki söz dizimi hatası: {0}, -Syntax error in formula or condition: {0},Formül ya da işletim söz dizimi hatası: {0}, +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ı, +Syntax error in condition: {0},Durumdaki sözdizimi hatası: {0}, +Syntax error in formula or condition: {0},Formül ya da durumun söz dizimi hatası: {0}, System Manager,Sistem Yöneticisi, -TDS Rate %,TDS Oranı %, -Tap items to add them here,Buraya dahil etmek için biriktirmek, +TDS Rate %,TDS Oranı%, +Tap items to add them here,Buraya eklemek için öğelere dokunun, Target,Hedef, Target ({}),Hedef ({}), -Target On,Hedef yeri, +Target On,Hedefi, Target Warehouse,Hedef Depo, -Target warehouse is mandatory for row {0},Satır {0} için hedef depo cezaları, +Target warehouse is mandatory for row {0},Satır {0} için hedef depo zorunludur, Task,Görev, Tasks,Görevler, -Tasks have been created for managing the {0} disease (on row {1}),{0} hastalığını izlemek için yazışmalar (satır {1}), +Tasks have been created for managing the {0} disease (on row {1}),{0} hastalığını yönetmek için görevler oluşturuldu (satır {1}), Tax,Vergi, 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 olduklarında, 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 "Toplam" olarak değiştirildi", Tax ID,Vergi Numarası, Tax Id: ,Vergi numarası:, -Tax Rate,Vergi Oranı, +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., @@ -2926,45 +2926,45 @@ Tax template for selling transactions.,Satış işlemleri için vergi şablonu., 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ış, -Terms and Conditions,Şartlar ve Koşullar, -Terms and Conditions Template,Şartlar ve Koşullar Şablonu, -Territory,Bölge, +Temporary Opening,Geçici Açma, +Terms and Conditions,Şartlar ve koşullar, +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.,'Paketten Numara' alanı ne boş ne de 1'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. sonları düzeltin 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'nin terimleriyle bağlantılı olduğu için Akademik Yılı Yıl Sonu tarihi daha olamaz (Akademik Yılı {}). sonları düzeltin ve tekrar deneyin., -The Term Start Date cannot be earlier than the Year Start Date of the Academic Year to which the term is linked (Academic Year {}). Please correct the dates and try again.,Dönem Başlangıç Tarihi terimi birbiriyle bağlantılı olduğu için Akademik Yılı Yıl Başlangıç Tarihi daha önce imkansız (Akademik Yılı {}). sonları düzeltin ve tekrar deneyin., -The Year End Date cannot be earlier than the Year Start Date. Please correct the dates and try again.,Yıl Bitiş Tarihi Yıl Başlangıç Tarihi daha önce olamaz. sonları düzeltin ve tekrar deneyin., -The amount of {0} set in this payment request is different from the calculated amount of all payment plans: {1}. Make sure this is correct before submitting the document.,"Bu ödeme isteğinde belirtilen {0} özellikleri, tüm ödeme planlarının hesaplanan davranışlarından farklı: {1}. Belgeyi göndermeden önce bunun doğru olduğundan emin olun.", -The day(s) on which you are applying for leave are holidays. You need not apply for leave.,Eğer izin için başvuruda bulunulduğu gün (ler) tatildir. İstemenize izin gerekmez., -The field From Shareholder cannot be blank,Pay Sahipliğinden alan boş olamaz, +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., +The Term Start Date cannot be earlier than the Year Start Date of the Academic Year to which the term is linked (Academic Year {}). Please correct the dates and try again.,Dönem Başlangıç Tarihi terim bağlantılı olduğu için Akademik Yılı Year Başlangıç Tarihi daha önce olamaz (Akademik Yılı {}). tarihleri düzeltmek ve tekrar deneyin., +The Year End Date cannot be earlier than the Year Start Date. Please correct the dates and try again.,Yıl Bitiş Tarihi Yil Başlangıç Tarihi daha önce olamaz. tarihleri düzeltmek ve tekrar deneyin., +The amount of {0} set in this payment request is different from the calculated amount of all payment plans: {1}. Make sure this is correct before submitting the document.,"Bu ödeme isteğinde belirlenen {0} tutarı, tüm ödeme planlarının hesaplanan tutarından farklı: {1}. Belgeyi göndermeden önce bunun doğru olduğundan emin olun.", +The day(s) on which you are applying for leave are holidays. You need not apply for leave.,Eğer izin için başvuruda edildiği gün (ler) tatildir. Sen izin talebinde gerekmez., +The field From Shareholder cannot be blank,Pay Sahipinden alan boş olamaz, The field To Shareholder cannot be blank,Hissedar Sahası boş olamaz, The fields From Shareholder and To Shareholder cannot be blank,Hissedar ve Hissedarya ait alanlar boş bırakılamaz, -The folio numbers are not matching,Folyo numaraları eşleşmiyor, +The folio numbers are not matching,Folio numaraları eşleşmiyor, The holiday on {0} is not between From Date and To Date,{0} üzerinde tatil Tarihten itibaren ve Tarihi arasında değil, The name of the institute for which you are setting up this system.,Enstitünün adı kendisi için bu sistemi kuruyoruz., The name of your company for which you are setting up this system.,Bu sistemi kurduğunu şirketinizin adı, -The number of shares and the share numbers are inconsistent,Hisse miktarı ve his miktarları tutarsız, -The payment gateway account in plan {0} is different from the payment gateway account in this payment request,"{0} planındaki ödeme ağ sahip hesabı, bu ödeme talebindeki ödeme ağ mülk hesabından ilişkilendirme", +The number of shares and the share numbers are inconsistent,Hisse sayısı ve hisse sayıları tutarsız, +The payment gateway account in plan {0} is different from the payment gateway account in this payment request,"{0} planındaki ödeme ağ geçidi hesabı, bu ödeme isteğindeki ödeme ağ geçidi hesabından farklıdır", The selected BOMs are not for the same item,Seçilen malzeme listeleri aynı madde için değildir, The selected item cannot have Batch,Seçilen öğe Toplu olamaz, The seller and the buyer cannot be the same,Satıcı ve alıcı aynı olamaz, @@ -2972,116 +2972,116 @@ The shareholder does not belong to this company,Hissedar bu şirkete ait değil, The shares already exist,Paylar zaten var, The shares don't exist with the {0},{0} ile paylaşımlar mevcut değil, "The task has been enqueued as a background job. In case there is any issue on processing in background, the system will add a comment about the error on this Stock Reconciliation and revert to the Draft stage","Görev, arka plan işi olarak yapıldı. Arka planda işleme konusunda herhangi bir sorun olması durumunda, sistem bu Stok Mutabakatı ile ilgili bir yorum ekler ve Taslak aşamasına geri döner", -"Then Pricing Rules are filtered out based on Customer, Customer Group, Territory, Supplier, Supplier Type, Campaign, Sales Partner etc.","Sonra Fiyatlandırma Kuralları Müşteri temelli filtrelenir, Müşteri Grubu, Territory, Tedarikçi, Tedarikçi Tipi, Kampanya, Satış Ortağı vb", -"There are inconsistencies between the rate, no of shares and the amount calculated","Oran, ödeme miktarı ve hesaplanan tutarlar arasında tutarsızlıklar vardır", -There are more holidays than working days this month.,Bu aylık ç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 sesli toplama faktörü olabilir. Ancak, itfa için dönüştürme faktörü, tüm katmanlar için her zaman aynı olacaktır.", -There can only be 1 Account per Company in {0} {1},Sadece Şirketin başına 1 Hesap olabilir {0} {1}, +"Then Pricing Rules are filtered out based on Customer, Customer Group, Territory, Supplier, Supplier Type, Campaign, Sales Partner etc.","Sonra Fiyatlandırma Kurallar Müşteri dayalı filtre edilir, Müşteri Grubu, Territory, Tedarikçi, Tedarikçi Tipi, Kampanya, Satış Ortağı vb", +"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 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} süreleri arasında izin süresi yoktur, +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, There is nothing to edit.,Düzenlenecek bir şey yok, -There isn't any item variant for the selected item,Seçilen öğe için herhangi bir öğe tahmini yok, -"There seems to be an issue with the server's GoCardless configuration. Don't worry, in case of failure, the amount will get refunded to your account.","Sunucunun GoCardless çevresinde bir sorun var gibi görünüyor. Endişelenme, çökmeleri durumunda, tutulmaları iade edilir.", +There isn't any item variant for the selected item,Seçilen öğe için herhangi bir öğe varyantı yok, +"There seems to be an issue with the server's GoCardless configuration. Don't worry, in case of failure, the amount will get refunded to your account.","Sunucunun GoCardless yapılandırmasında bir sorun var gibi görünüyor. Endişelenme, başarısızlık durumunda, tutar hesabınıza iade edilir.", There were errors creating Course Schedule,Ders Programı Oluşturma Hataları Oluştu, There were errors.,Hatalar vardı, -This Item is a Template and cannot be used in transactions. Item attributes will be copied over into the variants unless 'No Copy' is set,Bu Öğe bir Şablondur ve işlemlerde kullanılamaz. 'Kopyalama Yok' ayarlanmadığı sürece öğe özellikleri varyantlara kopyalanacaktır, -This Item is a Variant of {0} (Template).,"Bu Öğe, {0} (Şablon)nin bir değişkenidir.", +This Item is a Template and cannot be used in transactions. Item attributes will be copied over into the variants unless 'No Copy' is set,Bu Ürün Şablon ve işlemlerde kullanılamaz. 'Hayır Kopyala' ayarlanmadığı sürece Öğe özellikleri varyantları içine üzerinden kopyalanır, +This Item is a Variant of {0} (Template).,"Bu Öğe, {0} (Şablon) değişkenidir.", This Month's Summary,Bu Ayın Özeti, This Week's Summary,Bu Haftanın Özeti, -This action will stop future billing. Are you sure you want to cancel this subscription?,"Bu işlemi, faturalandırmayı durduracak. Bu aboneliği iptal etmek istediğinizden emin misiniz?", -This covers all scorecards tied to this Setup,"Bu, bu Kurulum ile bağlantılı tüm puan kartlarını kapsayan", -This document is over limit by {0} {1} for item {4}. Are you making another {3} against the same {2}?,Bu belge ile sınırı üzerinde {0} {1} öğe için {4}. aynı karşı başka {3} {2}?, +This action will stop future billing. Are you sure you want to cancel this subscription?,"Bu işlem, gelecekteki faturalandırmayı durduracak. Bu aboneliği iptal etmek istediğinizden emin misiniz?", +This covers all scorecards tied to this Setup,"Bu, bu Kurulum ile bağlantılı tüm puan kartlarını kapsar", +This document is over limit by {0} {1} for item {4}. Are you making another {3} against the same {2}?,Bu belge ile sınırı üzerinde {0} {1} öğe için {4}. yapıyoruz aynı karşı başka {3} {2}?, This is a root account and cannot be edited.,Bu bir kök hesabıdır ve düzenlenemez., This is a root customer group and cannot be edited.,Bu bir kök müşteri grubudur ve düzenlenemez., -This is a root department and cannot be edited.,Bu bir kök devlettir ve düzenlenemez., -This is a root healthcare service unit and cannot be edited.,Bu bir kök sağlık hizmet birimidir ve düzenlenemez., -This is a root item group and cannot be edited.,Bu bir kök grubu Üründür ve düzenlenemez., +This is a root department and cannot be edited.,Bu bir kök departmanıdır ve düzenlenemez., +This is a root healthcare service unit and cannot be edited.,Bu bir kök sağlık hizmeti birimidir ve düzenlenemez., +This is a root item group and cannot be edited.,Bu bir kök Ürün grubudur ve düzenlenemez., This is a root sales person and cannot be edited.,Bu bir kök satış kişisidir ve düzenlenemez., This is a root supplier group and cannot be edited.,Bu bir kök tedarikçi grubudur ve düzenlenemez., This is a root territory and cannot be edited.,Bu bir kök bölgedir ve düzenlenemez., -This is an example website auto-generated from ERPNext,Bu ERPNextten otomatik olarak üretilmiş bir örnek web sitesidir., -This is based on logs against this Vehicle. See timeline below for details,"Bu, bu Araç karşı günlükleri gider. Ayrıntılar için aşağıdaki zaman geçişini bakın", -This is based on stock movement. See {0} for details,Bu stok hareketleri devam ediyor. Bkz. {0} ayrıntılar için, -This is based on the Time Sheets created against this project,"Bu, bu projeye karşı potansiyel Zaman postalarını yönlendiriyor", -This is based on the attendance of this Employee,"Bu, bu çalışan yoğunluğu esas alır", -This is based on the attendance of this Student,"Bu, bu Öğrencinin katılımıyla artar", -This is based on transactions against this Customer. See timeline below for details,"Bu, bu Müşteriye karşı işlemlere ayrılmıştır. Ayrıntılar için aşağıdaki zaman geçişini bakın", -This is based on transactions against this Healthcare Practitioner.,"Bu, bu Sağlık Hizmeti Uygulayıcısına yapılan işlemlere bağlıdır.", -This is based on transactions against this Patient. See timeline below for details,"Bu, bu Hastaya karşı işlemlere göre yapılır. Ayrıntılar için aşağıdaki zaman aralarına bakın", -This is based on transactions against this Sales Person. See timeline below for details,"Bu, bu Satış Kişisine karşı yapılan işlemlere göre yapılır. Ayrıntılar için aşağıdaki zaman aralarına bakın", -This is based on transactions against this Supplier. See timeline below for details,Bu Satıcıya karşı işlemleri ayarlamak. Ayrıntılar için aşağıdaki zaman geçişini bakın, -This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?,"Bu, Maaş Balıkları gönderecek ve Tahakkuk Yevmiye Kaydı oluşturacaktır. Devam etmek istiyor musunuz?", +This is an example website auto-generated from ERPNext,Bu ERPNextten otomatik olarak üretilmiş bir örnek web sitedir., +This is based on logs against this Vehicle. See timeline below for details,"Bu, bu Araç karşı günlükleri dayanmaktadır. Ayrıntılar için aşağıdaki zaman çizelgesini bakın", +This is based on stock movement. See {0} for details,Bu stok hareketi dayanmaktadır. Bkz {0} ayrıntılar için, +This is based on the Time Sheets created against this project,"Bu, bu projeye karşı oluşturulan Zaman kağıtları dayanmaktadır", +This is based on the attendance of this Employee,"Bu, bu Çalışan katılımı esas alır", +This is based on the attendance of this Student,"Bu, bu Öğrencinin katılımıyla dayanmaktadır", +This is based on transactions against this Customer. See timeline below for details,"Bu, bu Müşteriye karşı işlemlere dayanmaktadır. Ayrıntılar için aşağıdaki zaman çizelgesini bakın", +This is based on transactions against this Healthcare Practitioner.,"Bu, bu Sağlık Hizmeti Uygulayıcısına yapılan işlemlere dayanmaktadır.", +This is based on transactions against this Patient. See timeline below for details,"Bu, bu Hastaya karşı işlemlere dayanmaktadır. Ayrıntılar için aşağıdaki zaman çizelgesine bakın", +This is based on transactions against this Sales Person. See timeline below for details,"Bu, bu Satış Kişisine karşı yapılan işlemlere dayanmaktadır. Ayrıntılar için aşağıdaki zaman çizelgesine bakın", +This is based on transactions against this Supplier. See timeline below for details,Bu Bu Satıcıya karşı işlemlere dayanmaktadır. Ayrıntılar için aşağıdaki zaman çizelgesini bakın, +This will submit Salary Slips and create accrual Journal Entry. Do you want to proceed?,"Bu, Maaş Fişleri gönderecek ve Tahakkuk Dergisi Girişi oluşturacaktır. Devam etmek istiyor musunuz?", This {0} conflicts with {1} for {2} {3},Bu {0} çatışmalar {1} için {2} {3}, Time Sheet for manufacturing.,Üretim için Mesai Kartı., -Time Tracking,Zaman Takibi, +Time Tracking,Zaman Takip, "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 dilimleri eklendi, -Time(in mins),Zaman (dakika) , -Timer,Kronometre, -Timer exceeded the given hours.,Zamanlayıcı verilen saati aştı., -Timesheet,Mesai Kartı, -Timesheet for tasks.,Görevler için Mesai kartı., -Timesheet {0} is already completed or cancelled,Mesai Kartı {0} işletmeye alındı veya iptal edildi, -Timesheets,Mesai Kartı, -"Timesheets help keep track of time, cost and billing for activites done by your team","Zaman organizasyonları ekip tarafından yapılan uçuşlar için zaman, maliyet ve fatura izlemenize yardımcı olur", -Titles for print templates e.g. Proforma Invoice.,"Baskı Şablonları için başlıklar, boşaltma Proforma Fatura", -To,Kime, -To Address 1,Adres 1'ye, -To Address 2,Adres 2'ye, -To Bill,Faturalanacak, -To Date,Bitiş Tarihi, -To Date cannot be before From Date,Bitiş tarihi başlatma cezaları önce bitirme, +Time slots added,Zaman aralıkları eklendi, +Time(in mins),(Dakika cinsinden) Zaman, +Timer,kronometre, +Timer exceeded the given hours.,Zamanlayıcı verilen saatleri aştı., +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,için, +To Address 1,Adrese 1, +To Address 2,Adres 2'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ı", +To Date must be greater than From Date,"Tarihe, Tarihten büyük olmalıdır", To Date should be within the Fiscal Year. Assuming To Date = {0},Tarih Mali Yıl içinde olmalıdır. İlgili Tarih = {0}, To Datetime,DateTime için, To Deliver,Teslim edilecek, To Deliver and Bill,Teslim edilecek ve Faturalanacak, -To Fiscal Year,Mali Yıl, +To Fiscal Year,Mali Yıla, To GSTIN,GSTIN'e, -To Party Name,Cari Adı bitişi, -To Pin Code,PIN Koduna, -To Place,Yerleştirilecek, -To Receive,Alınacak, -To Receive and Bill,Teslim Alınacak ve Faturalanacak, -To State,Hedef Durum, +To Party Name,Parti adına, +To Pin Code,PIN Kodu'na, +To Place,Yerleştirmek, +To Receive,Almak, +To Receive and Bill,Teslimat ve Ödeme, +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ı anda eşit veya daha az olamaz, +To date can not be equal or less than from date,Bugüne kadar aynı tarihte eşit veya daha az olamaz, To date can not be less than from date,Bugüne kadar bugünden daha az olamaz, -To date can not greater than employee's relieving date,Bugüne kadar çalışanın sevkıyatı daha büyük olamaz, -"To filter based on Party, select Party Type first",Cariye dayalı seçim için önce Cari Tipi seçiniz, -"To get the best out of ERPNext, we recommend that you take some time and watch these help videos.","ERPNext en iyi sonucu almak için, biraz zaman ayırın ve bu yardım videolarını izlemenizi öneririz.", -"To include tax in row {0} in Item rate, taxes in rows {1} must also be included",Satır {0} bir vergiyi dahil etmek için {1} satırlarındaki vergiler de dahil edilmelidir, -To make Customer based incentive schemes.,Müşteri temelli teşvik programları yapıyor., -"To merge, following properties must be same for both items","Birleştirme için, aşağıdaki özellikler her iki Ürün için de aynı olmalıdır", +To date can not greater than employee's relieving date,Bugüne kadar çalışanın tahliye tarihinden daha büyük olamaz, +"To filter based on Party, select Party Type first",Partiye dayalı seçim için önce Parti Tipi seçiniz, +"To get the best out of ERPNext, we recommend that you take some time and watch these help videos.","ERPNext en iyi sonucu almak için, biraz zaman ayırın ve bu yardım videoları izlemek öneririz.", +"To include tax in row {0} in Item rate, taxes in rows {1} must also be included",Satır {0} a vergi eklemek için {1} satırlarındaki vergiler de dahil edilmelidir, +To make Customer based incentive schemes.,Müşteri bazlı teşvik programları yapmak., +"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ı ayarları için, 'Varsayılan olarak ayarladık' 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 {0},Şu kişi {0}, +"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 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, -Too many columns. Export the report and print it using a spreadsheet application.,Çok fazla sütun. Rapor çıkarın ve elektronik tablo uygulamasını kullanarak yazdırın., +Too many columns. Export the report and print it using a spreadsheet application.,Çok fazla sütun. Raporu çıkarın ve spreadsheet uygulaması kullanarak yazdırın., Tools,Araçlar, -Total (Credit),Toplam (Alacak), -Total (Without Tax),Toplam (Vergi hariç), -Total Absent,Toplam Devamsız, -Total Achieved,Toplam Eldeki, +Total (Credit),Toplam (Kredi), +Total (Without Tax),Toplam (Vergisiz), +Total Absent,Toplam Yok, +Total Achieved,Toplam Elde, Total Actual,Gerçek Toplam, -Total Allocated Leaves,Toplam Tahsis Edilen İzin, -Total Amount,Toplam Tutar, +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 Vergi Öğeleri tablosundaki toplam uygulanabilir Masraflar Toplam ve Masraflar aynı olmalıdır, -Total Budget,Toplam Bütçe, +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 Debit must be equal to Total Credit. The difference is {0},"Toplam Borç Toplam Krediye eşit olmalıdır. Aradaki fark, {0}", -Total Deduction,Toplam Kesinti, +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 İzin, +Total Leaves,Toplam Yapraklar, Total Order Considered,Dikkat Toplam Sipariş, Total Order Value,Toplam Sipariş Miktarı, Total Outgoing,Toplam Giden, @@ -3089,93 +3089,93 @@ 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ı Büyük / Yuvarlak Toplam 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'e eşit olmalıdır., +Total Payments,Toplam tutar, Total Present,Toplam Mevcut, -Total Qty,Toplam Mik, -Total Quantity,Toplam Miktar, -Total Revenue,toplam Gelir, +Total Qty,Toplam Adet, +Total Quantity,Toplam miktar, +Total Revenue,Toplam gelir, Total Student,Toplam Öğrenci, Total Target,Toplam Hedef, -Total Tax,Toplam Vergi, +Total Tax,Toplam vergi, Total Taxable Amount,Toplam Vergilendirilebilir Tutar, Total Taxable Value,Toplam Vergilendirilebilir Değer, Total Unpaid: {0},Toplam Ödenmemiş: {0}, Total Variance,Toplam Varyans, -Total Weightage of all Assessment Criteria must be 100%,Bütün Değerlendirme Kriterleri Toplam ağırlık %100 olmalıdır, -Total advance ({0}) against Order {1} cannot be greater than the Grand Total ({2}),Toplam avans ({0}) Sipariş karşı {1} Genel Toplamdan büyük olamaz ({2}), -Total advance amount cannot be greater than total claimed amount,"Toplam avans miktarı, talep edilen miktar tutarları kadar olamaz", -Total advance amount cannot be greater than total sanctioned amount,"Toplam avans miktarı, toplam onaylanan tutarlardan fazla olamaz", -Total allocated leaves are more days than maximum allocation of {0} leave type for employee {1} in the period,"Toplam sarf malzemeleri, dönemdeki {1} çalışan için maksimum {1} izin türlerinin daha fazla sürümleri.", -Total allocated leaves are more than days in the period,Toplam harcamalar süresi boyunca gün daha vardır, -Total allocated percentage for sales team should be 100,Satış ekibi için koruma toplamı yüzde 100 olmalıdır, +Total Weightage of all Assessment Criteria must be 100%,Bütün Değerlendirme Kriterleri Toplam weightage% 100 olmalıdır, +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 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 flexible benefit component amount {0} should not be less than max benefits {1},"Toplam esnek kullanım bileşenleri {0} birlikte, maksimum faydadan {1} daha az tüketir", +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 koruma toplam izinler süreleri, -Total working hours should not be greater than max working hours {0},Toplam çalışma süresi maksimum çalışma saatleri fazla harcama {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 sunucu için size 'Dayalı Suçlamaları dağıtın' değişmeli sıfır olabilir, +"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(Amt),Toplam (AMT), Total(Qty),Toplam (Adet), Traceability,İzlenebilirlik, -Traceback,Geri takip, +Traceback,Geri iz, Track Leads by Lead Source.,Lead Source tarafından Leads izleyin., Training,Eğitim, -Training Event,Eğitim Etkinliği, +Training Event,Eğitim Etkinlik, Training Events,Eğitim Etkinlikleri, Training Feedback,Eğitim Görüşleri, Training Result,Eğitim Sonucu, -Transaction,İşlem, +Transaction,işlem, Transaction Date,İşlem Tarihi, Transaction Type,işlem tipi, -Transaction currency must be same as Payment Gateway currency,İşlem para birimi Ödeme Gateway para birimi ile aynı olmalıdır, -Transaction not allowed against stopped Work Order {0},İşlem durdurulmuş {0} iş emrine karşı izin verilmiyor, -Transaction reference no {0} dated {1},{1} tarihli {0} numaralı işlem referansı, -Transactions,İşlemler, -Transactions can only be deleted by the creator of the Company,İşlemler sadece Şirketin yaratıcısı tarafından silinebilir, -Transfer,Transfer et, +Transaction currency must be same as Payment Gateway currency,İşlem birimi Ödeme Gateway para birimi olarak aynı olmalıdır, +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, +Transfer,Transfer, Transfer Material,Transfer Malzemesi, -Transfer Type,Transfer Türü, -Transfer an asset from one warehouse to another,başka bir depodan bir varlık transferi, -Transfered,Transfer edildi, +Transfer Type,Aktarım Türü, +Transfer an asset from one warehouse to another,başka bir depodan bir varlık transfer, +Transfered,Aktarılan, Transferred Quantity,Aktarılan Miktar, -Transport Receipt Date,Nakliye Fişi Tarihi, -Transport Receipt No,Nakliye Fişi No, -Transportation,Nakliye, -Transporter ID,Nakliyeci Kimliği, -Transporter Name,Nakliyeci Adı, +Transport Receipt Date,Taşıma Fişi Tarihi, +Transport Receipt No,Taşıma Makbuzu No, +Transportation,Taşıma, +Transporter ID,Taşıyıcı Kimliği, +Transporter Name,Taşıyıcı Adı, Travel,Gezi, Travel Expenses,Seyahat Giderleri, Tree Type,Ağaç Tipi, Tree of Bill of Materials,Malzeme Listesi Ağacı, Tree of Item Groups.,Ürün Grupları Ağacı, -Tree of Procedures,mahkumlar ağacı, -Tree of Quality Procedures.,Kalite Ağacı hükümleri., +Tree of Procedures,Prosedürler Ağacı, +Tree of Quality Procedures.,Kalite Ağacı Prosedürleri., Tree of financial Cost Centers.,Finansal Maliyet Merkezleri Ağacı., -Tree of financial accounts.,mali hesap Ağaçlarının., +Tree of financial accounts.,mali hesaplarının Ağacı., Treshold {0}% appears more than once,"Eşik {0},% kereden fazla görünür", Trial Period End Date Cannot be before Trial Period Start Date,Deneme Süresi Bitiş Tarihi Deneme Süresi Başlangıç Tarihinden önce olamaz, -Trialling,deneme, +Trialling,trialling, Type of Business,İş türü, -Types of activities for Time Logs,Zaman Kayıtları operasyon Türleri, +Types of activities for Time Logs,Zaman Kayıtlar faaliyetleri Türleri, UOM,Birim, -UOM Conversion factor is required in row {0},Ölçü Birimi Dönüşüm tüketimi satırı {0} da gereklidir, -UOM coversion factor required for UOM: {0} in Item: {1},Ürün {1} de Ölçü Birimi: {0} için Ölçü Birimi dönüştürme parametresi dahildir., +UOM Conversion factor is required in row {0},Ölçü Birimi Dönüşüm katsayısı satır {0} da gereklidir, +UOM coversion factor required for UOM: {0} in Item: {1},Ürün {1} de Ölçü Birimi: {0} için Ölçü Birimi dönüştürme katsayısı gereklidir., 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 taşıma kaydırma el ile oluşturun, -Unable to find score starting at {0}. You need to have standing scores covering 0 to 100,{0} 'da başlarken skor bulunamadı. 0'dan 100'e kadar olan ayakta puanlara sahip olmanız gerekir, -Unable to find variable: ,işletim 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 variable: ,Değişken bulunamadı:, Unblock Invoice,Faturanın Engellenmesini Kaldır, -Uncheck all,Tümünü karıştırma, +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,birim, +Unit of Measure,Ölçü birimi, 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 Digest aboneliğinden çık, Unsubscribed,Kaydolmamış, @@ -3183,127 +3183,127 @@ 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 Cost,Güncelleme Maliyeti, Update Items,Öğeleri Güncelle, -Update Print Format,Yazıcı Formatını Güncelle, -Update Response,yanıt 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 Alışa göre fiyatı güncelle, -Update stock must be enable for the purchase invoice {0},Satınalma faturası {0} satınalma faturası için etkinleştirilmelidir, -Updating Variants...,Varyantlar Güncelleniyor..., -Upload your letter head and logo. (you can edit them later).,Mektup baş ve logo yükleyin. (Daha sonra bunları düzenleyebilirsiniz)., -Upper Income,üst gelir, +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, Use Sandbox,Kullanım Sandbox, -Used Leaves,Kullanılan İzin, -User,Kullanıcı, +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ı sıfatı ayarlanmamış, +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 uygulamasıydı, -User {0} already exists,{0} kullanıcı zaten mevcut, -User {0} created,{0}görüşmeler, +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'ı temizleme., -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ı, Sağlık Uzmanına {1} atandı", +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} 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 hüküm olandan daha az olmalıdır.", +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,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, -Valid from date must be less than valid upto date,Tarihten itibaren geçerli olan tarihten geçerli olandan az olmalıdır, -Valid till date cannot be before transaction date,geçerli tarihe kadar işlem tarihi öncesi olamaz, -Validity,geçerlilik, +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, +Validity,Geçerlilik, Validity period of this quotation has ended.,Bu fiyat teklifinin geçerlilik süresi sona erdi., Valuation Rate,Değerleme Oranı, -Valuation Rate is mandatory if Opening Stock entered,Açılış Stoğu girilirse Değerleme Oranı zorunludur, +Valuation Rate is mandatory if Opening Stock entered,Açılış Stok girdiyseniz Değerleme Oranı zorunludur, Valuation type charges can not marked as Inclusive,Değerleme tipi ücretleri dahil olarak işaretlenmiş olamaz, Value Or Qty,Değer veya Miktar, -Value Proposition,Değer Önerileri, -Value for Attribute {0} must be within the range of {1} to {2} in the increments of {3} for Item {4},{0} Attribute değer aralığı olmalıdır {1} {2} dizilerle {3} Öğe için {4}, -Value missing,değer eksik, +Value Proposition,Değer Önerisi, +Value for Attribute {0} must be within the range of {1} to {2} in the increments of {3} for Item {4},{0} Attribute değer aralığında olmalıdır {1} {2} artışlarla {3} Öğe için {4}, +Value missing,Değer eksik, Value must be between {0} and {1},Değer {0} ve {1} arasında olmalıdır, "Values of exempt, nil rated and non-GST inward supplies","Muaf, sıfır değer ve GST dışı iç arz değerleri", -Variable,hareketli, +Variable,Değişken, Variance,Varyans, Variance ({}),Varyans ({}), -Variant,sahip olmak, +Variant,varyant, Variant Attributes,Varyant Nitelikler, -Variant Based On cannot be changed,Temel Değişken değiştirilemez, +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 kayda alındı., -Vehicle Expenses,araç giderleri, +Variant creation has been queued.,Varyant oluşturma işlemi sıraya alındı., +Vehicle Expenses,araç Giderleri, Vehicle No,Araç No, Vehicle Type,araç tipi, Vehicle/Bus Number,Araç / Otobüs Numarası, Venture Capital,Girişim Sermayesi, -View Chart of Accounts,Hesapların Grafiği Görüntüle, +View Chart of Accounts,Hesapların Grafiğini Görüntüle, View Fees Records,Ücret Kayıtlarını Görüntüleme, -View Form,Form Görüntüle, +View Form,Formu Görüntüle, View Lab Tests,Lab Testlerini Görüntüle, -View Leads,Adaylerı Göster, -View Ledger,Defteri Göster, +View Leads,Görünüm İlanlar, +View Ledger,Değerlendirme Defteri, View Now,Şimdi Görüntüle, -View a list of all the help videos,Tüm yardım videolarının bir listesini alma, +View a list of all the help videos,Tüm yardım videoların bir listesini görüntüleyin, View in Cart,Sepet Görüntüle, Visit report for maintenance call.,Bakım araması için ziyaret raporu., Visit the forums,Forumları ziyaret et, -Vital Signs,Hayati geçirmek, +Vital Signs,Hayati bulgular, Volunteer,Gönüllü, Volunteer Type information.,Gönüllü Türü bilgileri., Volunteer information.,Gönüllü bilgi., -Voucher #,#, +Voucher #,Föy #, Voucher No,Föy No, Voucher Type,Föy Türü, -WIP Warehouse,Yarı Mamül Depo, +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, -Warehouse is mandatory,depo cezaları, -Warehouse is mandatory for stock Item {0} in row {1},Satır {1} de stok Ürün {0} için depo bakım ürünleri, +Warehouse is mandatory,Depo zorunludur, +Warehouse is mandatory for stock Item {0} in row {1},Satır {1} de stok Ürünü {0} için depo zorunludur, Warehouse not found in the system,Sistemde depo bulunmadı, -"Warehouse required at Row No {0}, please set default warehouse for the item {1} for the company {2}","{0} numaralandırma Satırda gerekli depo lütfen, {2} şirket için {1} varlığın varsayılan depolamasını lütfen ayarlayın", +"Warehouse required at Row No {0}, please set default warehouse for the item {1} for the company {2}","{0} numaralı Satırda gerekli depo lütfen, {2} şirketi için {1} öğesinin varsayılan depolamasını lütfen ayarlayın", Warehouse required for stock Item {0},Stok Ürünü {0} için depo gereklidir, -Warehouse {0} can not be deleted as quantity exists for Item {1},Ürün {1} için miktar mevcut olduklarında depo {0} silinemez, +Warehouse {0} can not be deleted as quantity exists for Item {1},Ürün {1} için miktar mevcut olduğundan depo {0} silinemez, Warehouse {0} does not belong to company {1},Depo {0} Şirket {1}e ait değildir, -Warehouse {0} does not exist,Depo {0} yok, -"Warehouse {0} is not linked to any account, please mention the account in the warehouse record or set default inventory account in company {1}.","Depo {0} herhangi bir açıklamaya bağlı değil, lütfen depo kaydındaki hesaptaki sözcükten veya {1} şirketteki varsayılan envanter hesabını kullanın.", -Warehouses with child nodes cannot be converted to ledger,alt düğümleri ile depolar Ledger dönüştürülemez, +Warehouse {0} does not exist,Depo {0} yoktur, +"Warehouse {0} is not linked to any account, please mention the account in the warehouse record or set default inventory account in company {1}.","Depo {0} herhangi bir hesaba bağlı değil, lütfen depo kaydındaki hesaptaki sözcükten veya {1} şirketindeki varsayılan envanter hesabını belirtin.", +Warehouses with child nodes cannot be converted to ledger,alt düğümleri ile depolar Ledger dönüştürülebilir olamaz, Warehouses with existing transaction can not be converted to group.,Mevcut işlem ile depolar grubuna dönüştürülemez., -Warehouses with existing transaction can not be converted to ledger.,Mevcut işlem ile depolar defterine dönüştürülemez., +Warehouses with existing transaction can not be converted to ledger.,Mevcut işlem ile depolar defterine dönüştürülür edilemez., Warning,Uyarı, -Warning: Another {0} # {1} exists against stock entry {2},Uyarı: {2} Stok Hareketi karşı başka bir {0} # {1} var, +Warning: Another {0} # {1} exists against stock entry {2},Uyarı: Başka {0} # {1} stok girişi karşı var {2}, Warning: Invalid SSL certificate on attachment {0},Uyarı: eki Geçersiz SSL sertifikası {0}, -Warning: Invalid attachment {0},Uyarı: Geçersiz İnceleme {0}, -Warning: Leave application contains following block dates,Uyarı: İzin yazılımı aşağıdaki engel bölümleri bulunmaktadır, +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: System will not check overbilling since amount for Item {0} in {1} is zero,Uyarı: {1} deki {0} ürün bedeli sıfır olduğu için sistem fazla faturasını ödemeyi kontrol etmeyecektir, -Warranty,garanti, -Warranty Claim,Garanti Talebi, -Warranty Claim against Serial No.,Seri No'ya karşı Garanti Talebi, +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 against Serial No.,Seri No. karşı Garanti İddiası, Website,Web sitesi, -Website Image should be a public file or website URL,Web Sitesi Resim kamu dosyası veya web sitesi URL'si olmalıdır, +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, Website Manager,Web Yöneticisi, Website Settings,Web Sitesi Ayarları, Wednesday,Çarşamba, -Week,Haftalık, +Week,Hafta, Weekdays,Hafta içi, Weekly,Haftalık, -"Weight is mentioned,\nPlease mention ""Weight UOM"" too","Ağırlık çok ""Ağırlık Ölçü Birimi"" Belirtiniz \n, söz verilmektedir", -Welcome email sent,Hoşgeldiniz e-posta gönderimi yapılır, +"Weight is mentioned,\nPlease mention ""Weight UOM"" too","Ağırlık çok ""Ağırlık Ölçü Birimi"" belirtiniz \n, söz edilmektedir", +Welcome email sent,Hoşgeldiniz e-posta adresine gönderildi, Welcome to ERPNext,Hoşgeldiniz, -What do you need help with?,Ne konulardaki güçler var?, +What do you need help with?,Ne konuda yardıma ihtiyacın var?, 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, @@ -3312,66 +3312,66 @@ Work Order {0} must be cancelled before cancelling this Sales Order,Bu Müşteri 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, -Wrong Password,Yanlış Şifre, -Year start date or end date is overlapping with {0}. To avoid please set company,Yılın başlangıç ve bitiş tarihi {0} ile kesişiyor. Engellemek için lütfen firma seçiniz., -You are not authorized to add or update entries before {0},{0} ve önceki girdileri ekleme veya güncelleme yetkiniz yok, -You are not authorized to approve leaves on Block Dates,Blok Tarihlerindeki çıkışları onaylama yetkiniz yok, -You are not authorized to set Frozen value,Donmuş değerini ayarlamak yetkiniz yok, -You are not present all day(s) between compensatory leave request days,Telafi edici izin talebi gün arasında tüm gün (ler) mevcut değilsiniz., -You can not change rate if BOM mentioned agianst any item,Herhangi bir Ürünye karşo BOM belirtilmişse orantısız değiştiremezsiniz., -You can not enter current voucher in 'Against Journal Entry' column,Sen sütununda 'Journal girişine karşı' geçerli fişi giremezsin, -You can only have Plans with the same billing cycle in a Subscription,Abonelikte yalnızca aynı faturalandırma tüketimine sahip Planlarınız olabilir, -You can only redeem max {0} points in this order.,Bu parçaları yalnızca maksimum {0} noktayı kullanabilirsiniz., +Wrong Password,Yanlış şifre, +Year start date or end date is overlapping with {0}. To avoid please set company,Yılın başlangıç ve bitiş tarihi {0} ile çakışıyor. Engellemek için lütfen firma seçin., +You are not authorized to add or update entries before {0},{0} dan önceki girdileri ekleme veya güncelleme yetkiniz yok, +You are not authorized to approve leaves on Block Dates,Blok Tarihlerdeki çıkışları onaylama yetkiniz yok, +You are not authorized to set Frozen value,Donmuş değeri ayarlama yetkiniz yok, +You are not present all day(s) between compensatory leave request days,Telafi edici izin talebi günleri arasında tüm gün (ler) mevcut değilsiniz., +You can not change rate if BOM mentioned agianst any item,Herhangi bir Ürünye karşo BOM belirtildiyse oran değiştiremezsiniz., +You can not enter current voucher in 'Against Journal Entry' column,Sen sütununda 'Journal girişine karşı' geçerli fiş giremezsiniz, +You can only have Plans with the same billing cycle in a Subscription,Abonelikte yalnızca aynı faturalandırma döngüsüne sahip Planlarınız olabilir, +You can only redeem max {0} points in this order.,Bu sırayla yalnızca maksimum {0} noktayı kullanabilirsiniz., 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 listelerinden yalnızca en fazla bir seçeneğin sağlanması., +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ğer olan Sadakat Puanlarını kullanamazsınız., +You can't redeem Loyalty Points having more value than the Grand Total.,Büyük Toplam'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 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 olabilirsiniz, +You don't have enought Loyalty Points to redeem,Kullanılması gereken sadakat puanlarına sahip değilsiniz, You have already assessed for the assessment criteria {}.,Zaten değerlendirme kriteri {} için değerlendirdiniz., -You have already selected items from {0} {1},Zaten öğelerinizi seçtiniz {0} {1}, -You have been invited to collaborate on the project: {0},{0} projesine davet edilmek için davet edildiniz, +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'te bulunmak 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 logged in to access this page,Bu sayfaya erişmek için giriş yapmış olmanız gerekmektedir., +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 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?,geçmişteki faturaların kayıtlarını kaybedersiniz. Bu aboneliği tekrar başlatmak istediğinizden emin misiniz?, +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?, Your Organization,Kuruluşunuz, Your cart is Empty,Sepetiniz boş, Your email address...,E..., -Your order is out for delivery!,Siparişiniz için teslimat için teslimat!, +Your order is out for delivery!,Siparişiniz teslimat için dışarıda!, Your tickets,Biletleriniz, ZIP Code,Posta kodu, [Error],[Hata], [{0}](#Form/Item/{0}) is out of stock,[{0}](#Form/Item/{0}) stokta yok, -`Freeze Stocks Older Than` should be smaller than %d days.,`%d'den Eski Stokları Dondur' günden daha kısa olmalıdır., +`Freeze Stocks Older Than` should be smaller than %d days.,`Freeze Stocks Older Than` %d günden daha kısa olmalıdır., based_on,temel_olarak, -cannot be greater than 100,100'den daha büyük olamaz, +cannot be greater than 100,100 'den daha büyük olamaz, disabled user,engelli kullanıcı, -"e.g. ""Build tools for builders""","örnekleme: ""Yazılım Çözümleri""", -"e.g. ""Primary School"" or ""University""","örnekleme, "İlköğretim Okulu" ya da "Üniversite"", -"e.g. Bank, Cash, Credit Card","Örnek: Banka, Nakit, Kredi Kartı", +"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. Bank, Cash, Credit Card","Örneğin: Banka, Nakit, Kredi Kartı", hidden,gizli, -modified,ilerlemek, -old_parent,eski_ebeveyn, +modified,değiştirilmiş, +old_parent,old_parent, on,üzerinde, {0} '{1}' is disabled,{0} '{1}' devre dışı, {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} sürümünün miktarın ({2}) fazla olamaz", -{0} - {1} is inactive student,{0} - {1} öğrenci aktif değildir, +{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 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., @@ -3379,113 +3379,113 @@ on,üzerinde, {0} Request for {1},{0} {1} için istek, {0} Result submittted,{0} Sonuç gönderildi, {0} Serial Numbers required for Item {1}. You have provided {2}.,{0} Öğe için gerekli Seri Numaraları {1}. Sağladığınız {2}., -{0} Student Groups created.,Öğrenci Grupları {0} kuruldu., -{0} Students have been enrolled,{0} öğrenci kaydoldu, -{0} against Bill {1} dated {2},{0} Fatura Karşısı {1} tarihli {2}, +{0} Student Groups created.,Öğrenci Grupları {0} oluşturuldu., +{0} Students have been enrolled,{0} Öğrenciler kaydoldu, +{0} against Bill {1} dated {2},{0} Bill karşı {1} tarihli {2}, {0} against Purchase Order {1},{0} Satınalma siparişine karşı{1}, {0} against Sales Invoice {1},{0} Satış Faturasına karşı {1}, {0} against Sales Order {1},{0} Satış Siparişine karşı {1}, -{0} already allocated for Employee {1} for period {2} to {3},{0} zaten çalışan ödenekleri {1} dönem {2} için {3}, +{0} already allocated for Employee {1} for period {2} to {3},{0} zaten Çalışan tahsis {1} dönem {2} için {3}, {0} applicable after {1} working days,{1} iş gününden sonra {0} uygulanabilir, -{0} asset cannot be transferred,{0} varlığını aktaramaz, +{0} asset cannot be transferred,{0} varlığı transfer edilemez, {0} can not be negative,{0} negatif olamaz, -{0} created,{0} sahip, -"{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 çalıştırma., -"{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 çıkarılıyor., +{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ı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ı'na sahip ve bu tedarikçinin RFQ'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 ekle", +{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, {0} for {1},{0} için {1}, {0} has been submitted successfully,{0} başarıyla gönderildi, -{0} has fee validity till {1},"{0}, {1} Yükün kadar ücret geçerliliğine sahiptir.", +{0} has fee validity till {1},"{0}, {1} yılına kadar ücret geçerliliğine sahiptir.", {0} hours,{0} saat, -{0} in row {1},{1} bilgisinde {0}, +{0} in row {1},{1} satırında {0}, {0} is blocked so this transaction cannot proceed,"{0} engellendi, bu işleme devam edilemiyor", -{0} is mandatory,{0} yaşam alanı, -{0} is mandatory for Item {1},{0} Ürün {1} için cezalar, -{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}.,{0} yaptırımlar. {1} ve {2} için Döviz kaydı oluşturulabilir., +{0} is mandatory,{0} alanı zorunludur, +{0} is mandatory for Item {1},{0} Ürün {1} için zorunludur, +{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}.,{0} zorunludur. {1} ve {2} için Döviz kaydı oluşturulmayabilir., {0} is not a stock Item,{0} bir stok ürünü değildir., {0} is not a valid Batch Number for Item {1},{0} Ürün {1} için geçerli bir parti numarası değildir, {0} is not added in the table,Tabloya {0} eklenmedi, {0} is not in Optional Holiday List,{0} İsteğe Bağlı Tatil Listesinde değil, {0} is not in a valid Payroll Period,{0} geçerli bir Bordro Döneminde değil, -{0} is now the default Fiscal Year. Please refresh your browser for the change to take effect.,{0} varsayılan Mali Yıldır. değiştirmek için tarayıcınızı yenileyiniz, -{0} is on hold till {1},"{0}, {1} geçen zamana kadar beklemede", +{0} is now the default Fiscal Year. Please refresh your browser for the change to take effect.,{0} varsayılan Mali Yıldır. Değiştirmek için tarayıcınızı yenileyiniz, +{0} is on hold till {1},"{0}, {1} tarihine kadar beklemede", {0} item found.,{0} öğe bulundu., {0} items found.,{0} öğe bulundu., -{0} items in progress,{0} ürün işleminde, -{0} items produced,{0} ürün üretimi, +{0} items in progress,{0} ürün işlemde, +{0} items produced,{0} ürün üretildi, {0} must appear only once,{0} sadece bir kez yer almalıdır, -{0} must be negative in return document,{0} iade belgesinde negatif olmalı, +{0} must be negative in return document,{0} return belgesinde negatif olmalıdır, {0} must be submitted,{0} gönderilmelidir, -{0} not allowed to transact with {1}. Please change the Company.,"{0}, {1} ile işlem yapmasına izin verilmiyor. Lütfen Şirketi kurallarına uyun.", +{0} not allowed to transact with {1}. Please change the Company.,"{0}, {1} ile işlem yapmasına izin verilmiyor. Lütfen Şirketi değiştirin.", {0} not found for item {1},{1} öğesi için {0} bulunamadı, -{0} parameter is invalid,{0} parametresi geçersiz, +{0} parameter is invalid,{0} parametre geçersiz, {0} payment entries can not be filtered by {1},{0} ödeme girişleri şu tarafından filtrelenemez {1}, {0} should be a value between 0 and 100,"{0}, 0 ile 100 arasında bir değer olmalıdır", {0} units of [{1}](#Form/Item/{1}) found in [{2}](#Form/Warehouse/{2}),{0} miktar [{1}](#Form/Item/{1}) bulunduğu yer [{2}](#Form/Warehouse/{2}), -{0} units of {1} needed in {2} on {3} {4} for {5} to complete this transaction.,Bu işlemi gerçekleştirmek için {2} içinde {3} {4} üstünde {5} için {0} miktar {1} gerekli., -{0} units of {1} needed in {2} to complete this transaction.,Bu işlemi yapmak için {2} içinde {0} birim {1} gerekli., +{0} units of {1} needed in {2} on {3} {4} for {5} to complete this transaction.,Bu işlemi tamamlamak için {2} içinde {3} {4} üstünde {5} için {0} miktar {1} gerekli., +{0} units of {1} needed in {2} to complete this transaction.,Bu işlemi tamamlamak için {2} içinde {0} birim {1} gerekli., {0} valid serial nos for Item {1},Ürün {1} için {0} geçerli bir seri numarası, -{0} variants created.,{0} geçmiş., -{0} {1} created,{0} {1} kuruluş, +{0} variants created.,{0} varyant oluşturuldu., +{0} {1} created,{0} {1} oluşturuldu, {0} {1} does not exist,{0} {1} mevcut değil, -{0} {1} has been modified. Please refresh.,"{0}, {1} düzenlendi. Lütfen yenileyin.", -{0} {1} has not been submitted so the action cannot be completed,"{0} {1} verildi, bu nedenle eylem tamamlanamadı", -"{0} {1} is associated with {2}, but Party Account is {3}","{0} {1}, {2} dosyaları, ancak Cari Hesabı {3}", +{0} {1} has been modified. Please refresh.,"{0}, {1} düzenlenmiştir. Lütfen yenileyin.", +{0} {1} has not been submitted so the action cannot be completed,"{0} {1} gönderilmedi, bu nedenle eylem tamamlanamadı", +"{0} {1} is associated with {2}, but Party Account is {3}","{0} {1}, {2} ile ilişkili, ancak Parti Hesabı {3}", {0} {1} is cancelled or closed,{0} {1} iptal edildi veya kapatıldı, -{0} {1} is cancelled or stopped,{0} {1}iptal edilmiş veya durdurulmuş, +{0} {1} is cancelled or stopped,{0} {1} iptal edilmiş veya durdurulmuş, {0} {1} is cancelled so the action cannot be completed,"{0} {1} iptal edildi, bu nedenle eylem tamamlanamadı", {0} {1} is closed,{0} {1} kapatıldı, {0} {1} is disabled,{0} {1} devre dışı, {0} {1} is frozen,{0} {1} donduruldu, {0} {1} is fully billed,{0} {1} tam fatura edilir, {0} {1} is not active,{0} {1} aktif değil, -{0} {1} is not associated with {2} {3},"{0} {1}, {2} {3} ile yayınlamıyor", +{0} {1} is not associated with {2} {3},"{0} {1}, {2} {3} ile ilişkili değil", {0} {1} is not present in the parent company,{0} {1} ana şirkette mevcut değil, {0} {1} is not submitted,{0} {1} teslim edilmedi, {0} {1} is {2},"{0} {1}, {2}", {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ışına izin verilmez, -{0} {1}: Account {2} does not belong to Company {3},{0} {1}: Hesap {2} Şirkete ait olmayan {3}, +{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}: 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 yaptırımları, -{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 kapsamlı bir Masraf Merkezi tanımlayın., -{0} {1}: Cost Center {2} does not belong to Company {3},{0} {1}: Maliyet Merkezi {2} Şirkete ait olmayan {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}: 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 alacaklısı girilmelidir, +{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, -{0}% Billed,%{0} Faturalandırıldı, +{0}% Billed,{0}% Faturalandırıldı, {0}% Delivered,{0}% Teslim Edildi, "{0}: Employee email not found, hence email not sent",{0}: Çalışanın e-posta adresi bulunamadığı için e-posta gönderilemedi, {0}: From {0} of type {1},{0}: gönderen {0} çeşidi {1}, {0}: From {1},{0}: gönderen {1}, {0}: {1} does not exists,{0}: {1} mevcut değil, -{0}: {1} not found in Invoice Details table,{0}: {1} Fatura Ayrıntıları tablosunda bulunmaması, +{0}: {1} not found in Invoice Details table,{0}: {1} Fatura Ayrıntıları tablosunda bulunamadı, {} of {},{} / {}, Assigned To,Atanan, Chat,Sohbet, -Completed By,Tamamlayan, +Completed By,Tarafından tamamlanmıştır, Conditions,Koşullar, County,Kontluk, Day of Week,Haftanın günü, -"Dear System Manager,Sevgili Sistem Yöneticisi,", +"Dear System Manager,","Sevgili Sistem Yöneticisi,", Default Value,Varsayılan Değer, Email Group,E-posta Grubu, Email Settings,E-posta Ayarları, -Email not sent to {0} (unsubscribed / disabled),Gönderilmez Email {0} (devre dışı / üyelikten), +Email not sent to {0} (unsubscribed / disabled),Gönderilmez Email {0} (devre dışı / abonelikten), Error Message,Hata mesajı, -Fieldtype,AlanTipi, +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,Varolan ile Birleştir, +Merge with existing,Mevcut Birleştirme, Office,Ofis, Orientation,Oryantasyon, Parent,Ana Kalem, @@ -3494,17 +3494,17 @@ Payment Failed,Ödeme başarısız, Percent,Yüzde, Permanent,kalıcı, Personal,Kişisel, -Plant,tesis, +Plant,Tesis, Post,Gönder, -Postal,posta, +Postal,Posta, Postal Code,Posta Kodu, Previous,Önceki, -Provider,Sağlayıcı, -Read Only,Tuz Okunur, -Recipient,alıcı, +Provider,sağlayan, +Read Only,Salt Okunur, +Recipient,Alıcı, Reviews,yorumlar, -Sender,Sevkiyatçı, -Shop,mağaza, +Sender,Gönderici, +Shop,Mağaza, Sign Up,Kaydol, Subsidiary,Yardımcı, There is some problem with the file url: {0},Dosya url ile bazı sorun var: {0}, @@ -3512,173 +3512,173 @@ There were errors while sending email. Please try again.,E-posta gönderirken ha Values Changed,Değerler Değişti, or,veya, Ageing Range 4,4 Yaşlanma Aralığı, -Allocated amount cannot be greater than unadjusted amount,"Tahsis edilen tutarlar, düzeltilmemiş tutarlardan büyük olamaz", -Allocated amount cannot be negative,Tahsis edilen miktarlar 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", +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 Girişi bir Açılış Girişidir", Error in some rows,Bazı satırlarda hata, -Import Successful,Başarılı İç Aktar, -Please save first,lütfen önce kaydet, -Price not found for item {0} in price list {1},{0} kaleminde {1} fiyat listelerinde fiyat bulunamadı, +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, Benefit,Yarar, -Budgets,bütçeler, +Budgets,Bütçeler, Bundle Qty,Paket Adet, -Company GSTIN,şirket GSTIN, -Company field is required,Şirket alanı alanı, -Creating Dimensions...,Boyutların Yapılandırması ..., +Company GSTIN,Şirket GSTIN, +Company field is required,Şirket alanı zorunludur, +Creating Dimensions...,Boyutların Oluşturulması ..., Duplicate entry against the item code {0} and manufacturer {1},{0} ürün koduna ve {1} üreticisine karşı yinelenen giriş, 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 tarihi kontrol kaynağı bir tarih olamaz, -Make Stock Entry,Stok Hareketi Yap, -Quality Feedback,Kalite geribildirimi, +Last carbon check date cannot be a future date,Son karbon kontrol tarihi gelecekteki bir tarih olamaz, +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},Göster {0} , -"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",""-", "#", ".", "/", "{{" ve "}}" Dış Özel Karakterler, dizi dizisine izin verilmez {0}", +Shift,vardiya, +Show {0},{0} göster, +"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}",""-", "#", ".", "/", "{{" Ve "}}" 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 yapıya sahip., +{0} already has a Parent Procedure {1}.,{0} zaten bir {1} veli prosedürüne sahip., API,API, Annual,Yıllık, Approved,Onaylandı, -Change,Değiştir, +Change,Değişiklik, Contact Email,İletişim E-Posta, -Export Type,Export Türü, -From Date,Baş. Tarihi, +Export Type,İhracat Şekli, +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,Landscape, +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,Portrait, +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 İzlemeyi Göster, Video,Video, -Webhook Secret,Webhook Secret, -% Of Grand Total,Genel Toplamın % 'si, +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., Company is a mandatory filter.,Şirket zorunlu bir filtredir., From Date is a mandatory filter.,Başlangıç Tarihi zorunlu bir filtredir., -From Time cannot be later than To Time for {0},"{0} için From Time , To Time'dan daha geçilemez", +From Time cannot be later than To Time for {0},"{0} için From Time , To Time'dan daha geç olamaz", To Date is a mandatory filter.,Bugüne kadar zorunlu bir filtredir., -A new appointment has been created for you with {0},{0} ile sizin için yeni bir randevu kaydı, -Account Value,hesap değeri, -Account is mandatory to get payment entries,Ödemeleri giriş almak için hesap yaptırımları, -Account is not set for the dashboard chart {0},{0} gösterge tablo grafiği için hesap ayarlanmadı, +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, +Account is mandatory to get payment entries,Ödeme girişleri almak için hesap zorunludur, +Account is not set for the dashboard chart {0},{0} gösterge tablosu grafiği için hesap ayarlanmadı, Account {0} does not belong to company {1},Hesap {0} Şirkete ait değil {1}, Account {0} does not exists in the dashboard chart {1},"{0} hesabı, {1} gösterge tablosunda yok", -Account: {0} is capital Work in progress and can not be updated by Journal Entry,Hesap: {0} sermayedir Devam etmekte olan iş ve Yevmiye Kaydı tarafından güncellenemez, -Account: {0} is not permitted under Payment Entry,Hesap: İzin verilmiyor altında {0} Ödeme Girişi, +Account: {0} is capital Work in progress and can not be updated by Journal Entry,Hesap: {0} 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 {0} is required for 'Balance Sheet' account {1}.,{1} 'Bilanço' hesabı için {0} Muhasebe Boyutu gerekiyor., Accounting Dimension {0} is required for 'Profit and Loss' account {1}.,{1} 'Kâr ve Zarar' hesabı için {0} Muhasebe Boyutu gereklidir., -Accounting Masters,Muhasebe Ana Verileri, +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., Add Child,Alt öğe ekle, Add Loan Security,Kredi Güvenliği Ekleme, -Add Multiple,Çoklu Ekle, -Add Participants,Katılımcı Ekle, -Add to Featured Item,Öne Çıkan Öğeye Ekle, -Add your review,Yorumunuzu yazın, -Add/Edit Coupon Conditions,Kupon Koşullarını Ekle/Düzenle, +Add Multiple,Birden fazla ekle, +Add Participants,Katılımcı ekle, +Add to Featured Item,Öne Çıkan Öğe Ekle, +Add your review,Yorum yaz, +Add/Edit Coupon Conditions,Kupon Koşulları Ekle / Düzenle, Added to Featured Items,Öne Çıkan Öğelere Eklendi, Added {0} ({1}),Eklenen {0} ({1}), Address Line 1,Adres Satırı 1, -Addresses,Adresler, +Addresses,Adresleri, Admission End Date should be greater than Admission Start Date.,"Giriş Bitiş Tarihi, Giriş Başlangıç Tarihinden büyük olmalıdır.", Against Loan,Krediye Karşı, Against Loan:,Krediye Karşı:, -All,Tümü, -All bank transactions have been created,Tüm banka işlemleri işletme, +All,Herşey, +All bank transactions have been created,Tüm banka işlemleri oluşturuldu, All the depreciations has been booked,Tüm amortismanlar rezerve edildi, -Allocation Expired!,Tahsis Süresi Bitti!, +Allocation Expired!,Tahsis Süresi Doldu!, Allow Resetting Service Level Agreement from Support Settings.,Servis Seviyesi Sözleşmesini Destek Ayarlarından Sıfırlamaya İzin Ver., -Amount of {0} is required for Loan closure,Kredi çıkışı için {0} barındırma gerekli, -Amount paid cannot be zero,Ödenen tutarları sıfır olamaz, +Amount of {0} is required for Loan closure,Kredi kapanması için {0} tutarı gerekli, +Amount paid cannot be zero,Ödenen tutar sıfır olamaz, Applied Coupon Code,Uygulamalı Kupon Kodu, -Apply Coupon Code,kupon üretme uygula, +Apply Coupon Code,kupon kodunu uygula, Appointment Booking,Randevu Rezervasyonu, -"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ğeri değiştiremezsiniz {1}", +"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 {0}.,"Varlık Değer Ayarlaması, Varlığın satınalma yollarından önce {0} yayınlanamaz .", -Asset {0} does not belongs to the custodian {1},"{0} varlık, {1} saklama deposuna ait değil", -Asset {0} does not belongs to the location {1},"{0} öğesi, {1} sunumu ait değil", +Asset Value,Varlık değeri, +Asset Value Adjustment cannot be posted before Asset's purchase date {0}.,"Varlık Değer Ayarlaması, Varlığın satın alma tarihinden önce {0} yayınlanamaz .", +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, Atleast one asset has to be selected.,En az bir varlık seçilmelidir., -Attendance Marked,Katılım İşaretlendi, +Attendance Marked,İşaretli Seyirci, Attendance has been marked as per employee check-ins,"Katılım, çalışan başına check-in olarak işaretlenmiştir.", -Authentication Failed,Kimlik doğrulaması başarısız oldu, +Authentication Failed,Kimlik doğrulama başarısız oldu, Automatic Reconciliation,Otomatik Mutabakat, -Available For Use Date,Kullanıma Uygun Tarih, +Available For Use Date,Kullanım Tarihi, Available Stock,Mevcut Stok, "Available quantity is {0}, you need {1}","Kullanılabilir miktar {0}, {1}", -BOM 1,Ürün Ağacı 1, -BOM 2,Ürün Ağacı 2, -BOM Comparison Tool,Malzeme Listesi Karşılaştırma Aracı, -BOM recursion: {0} cannot be child of {1},"BOM özyineleme: {0}, {1} öğenin alt öğesi olamaz", -BOM recursion: {0} cannot be parent or child of {1},"BOM özyinelemesi: {0}, {1} ürünün ebeveyni veya çocuğu olamaz", -Back to Home,Eve Geri dön, +BOM 1,BOM 1, +BOM 2,BOM 2, +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", +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 Details,Banka detayları, Bank account '{0}' has been synchronized,'{0}' 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 öğe için gerekli, -Billing Date,Fatura Tarihi, -Billing Interval Count cannot be less than 1,Faturalama Aralığı Sayısı 1'den az olamaz, +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, Blue,Mavi, -Book,Kaydet, -Book Appointment,Randevu Kaydı, +Book,Kitap, +Book Appointment,Kitap randevusu, Brand,Marka, Browse,Araştır, Call Connected,Arama Bağlandı, Call Disconnected,Çağrı Kesildi, Call Missed,Çağrı Cevapsız, Call Summary,Çağrı Özeti, -Call Summary Saved,Çağrı Özeti Kaydedildi, +Call Summary Saved,Arama Özeti Kayıtlı, Cancelled,İptal edildi, -Cannot Calculate Arrival Time as Driver Address is Missing.,Sürücü Adresi Eksiklerinden Varış Saati Hesaplanamıyor., +Cannot Calculate Arrival Time as Driver Address is Missing.,Sürücü Adresi Eksik olduğundan Varış Saati Hesaplanamıyor., Cannot Optimize Route as Driver Address is Missing.,Sürücü Adresi Eksik Olarak Rotayı Optimize Etme, -Cannot complete task {0} as its dependant task {1} are not ccompleted / cancelled.,{0} görevi tamamlanamıyor çünkü görevli görevi {1} tamamlanmadı / iptal edilmedi., +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. İç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} bilgisindeki {0} öğe için {2} 'den fazla öğe fazla faturalandırılamıyor. Fazla faturalandırmaya izin vermek için, lütfen Hesap Yapılandırmalarında ödenenek ayarını yapınız.", -"Capacity Planning Error, planned start time can not be same as end time","Kapasite Planlama Hatası, patlama başlangıç zamanı bitiş zamanı ile aynı olamaz", +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.", +"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, 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 formu tıklayın, +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} varlık ve {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,Yükleme listesi işlevlerini liste değişkenlerini alır, -Complete,Tamamla, +Compare List function takes on list arguments,Karşılaştırma Listesi işlevi liste değişkenlerini alır, +Complete,Komple, 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'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, 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 ..., @@ -3686,10 +3686,10 @@ Creating bank entries...,Banka girişi oluşturuluyor ..., Credit limit is already defined for the Company {0},{0} Şirketi için zaten kredi limiti tanımlanmış, Ctrl + Enter to submit,Göndermek için Ctrl + Enter, Ctrl+Enter to submit,Ctrl + Göndermek için Enter, -Currency,Para Birimi, +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ığı, @@ -3700,176 +3700,176 @@ Define coupon codes.,Kupon kodlarını tanımlayın., Delayed Days,Gecikmeli Günler, Delete,Sil, Delivered Quantity,Teslim edilen miktar, -Delivery Notes,İrsaliyeler, +Delivery Notes,Teslimat notları, Depreciated Amount,Amortisman Tutarı, Description,Açıklama, Designation,Atama, Difference Value,Fark Değeri, Dimension Filter,Boyut Filtresi, Disabled,Devredışı, -Disbursement and Repayment,Masraf ve Geri Ödeme, -Distance cannot be greater than 4000 kms,Mesafe 4000 km'den büyük olamaz, +Disbursement and Repayment,Ödeme ve Geri Ödeme, +Distance cannot be greater than 4000 kms,Mesafe 4000 km'den büyük olamaz, Do you want to submit the material request,Malzeme talebini göndermek ister misiniz, -Doctype,BelgeTipi, +Doctype,DOCTYPE, Document {0} successfully uncleared,{0} dokümanı başarıyla temizlendi, Download Template,Şablonu İndir, -Dr,Borç, +Dr,Dr, Due Date,Bitiş tarihi, Duplicate,Kopyala, -Duplicate Project with Tasks,Projeyi Görev ile Çoğalt, +Duplicate Project with Tasks,Görevlerle Çoğaltılmış Proje, Duplicate project has been created,Yinelenen proje oluşturuldu, -E-Way Bill JSON can only be generated from a submitted document,E-Way Bill JSON yalnızca kullandıkları bir belgeden oluşturulabilir, -E-Way Bill JSON can only be generated from submitted document,e-Way Bill JSON yalnızca kullanımlarından oluşturulabilir, +E-Way Bill JSON can only be generated from a submitted document,E-Way Bill JSON yalnızca gönderilen bir belgeden oluşturulabilir, +E-Way Bill JSON can only be generated from submitted document,e-Way Bill JSON yalnızca gönderilen dokümandan oluşturulabilir, E-Way Bill JSON cannot be generated for Sales Return as of now,e-Way Bill JSON şu andan itibaren Satış İadesi için oluşturulamıyor, -ERPNext could not find any matching payment entry,ERPNext'e bir ödeme girişi bulunamadı, +ERPNext could not find any matching payment entry,ERPNext eşleşen bir ödeme girişi bulamadı, Earliest Age,En Erken Yaş, -Edit Details,Detayları düzenlemek, -Edit Profile,profil düzenleme, -Either GST Transporter ID or Vehicle No is required if Mode of Transport is Road,Ulaştırma Modu Yol ise GST Nakliyeci Kimliği ya da Araç No mevcuttur., -Email,E-posta, +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,EPosta, Email Campaigns,E-posta Kampanyaları, -Employee ID is linked with another instructor,Çalışan kişinin başka bir eğitmenle bağlantısı, +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ı, Employee is required while issuing Asset {0},{0} Varlığı verilirken çalışan gerekli, -Employee {0} does not belongs to the company {1},{0} çalışanı {1} ortamı ait değil, +Employee {0} does not belongs to the company {1},{0} çalışanı {1} şirketine ait değil, Enable Auto Re-Order,Otomatik Yeniden Siparişi Etkinleştir, End Date of Agreement can't be less than today.,Anlaşmanın Bitiş Tarihi bugünden az olamaz., End Time,Bitiş Zamanı, Energy Point Leaderboard,Enerji Noktası Lider Tablosu, -Enter API key in Google Settings.,Google Configuration'na API anahtarını girin., +Enter API key in Google Settings.,Google Ayarları’na API anahtarını girin., Enter Supplier,Tedarikçi Girin, -Enter Value,Değeri Girin, +Enter Value,Değeri girin, Entity Type,Varlık Türü, Error,Hata, Error in Exotel incoming call,Exotel gelen aramada hata, -Error: {0} is mandatory field,Hata: {0} zorunlu olarak alandır, +Error: {0} is mandatory field,Hata: {0} zorunlu alandır, Event Link,Etkinlik Bağlantısı, -Exception occurred while reconciling {0},{0} uzlaştırırken kural dışı durum oluşur, -Expected and Discharge dates cannot be less than Admission Schedule date,Beklenen ve Deşarj süreleri Kabul Zamanlama hatları daha az olamaz, +Exception occurred while reconciling {0},{0} uzlaştırırken kural dışı durum oluştu, +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 Bitti, -Export,Dışarı Aktar, -Export not allowed. You need {0} role to export.,İhracata izin verilmiyor. Vermek {0} rolü gerekir., -Failed to add Domain,Etki alanı eklenemedi, +Expired,Süresi Doldu, +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, -Fetching...,Getiriliyor..., +Fetching...,Getiriliyor ..., Field,Alan, File Manager,Dosya Yöneticisi, Filters,Filtreler, Finding linked payments,Bağlantılı ödemeleri bulma, -Fleet Management,Filo Yönetimi, -Following fields are mandatory to create address:,Adres oluşturmak için aşağıdaki muhafazaların doldurulması:, +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} bilgisindeki {0} öğe için, seri numaralarının sayıları toplanan miktarla eşleşmiyor", -For operation {0}: Quantity ({1}) can not be greter than pending quantity({2}),"{0} işlemi için: Miktar ({1}), beklemedeki miktarın ({2}) daha emin olunamaz", -For quantity {0} should not be greater than work order quantity {1},{0} miktarı için {1} iş emri miktarından büyük kısıtlama, -Free item not set in the pricing rule {0},{0} fiyatlandırma düzenlemesinde ayarlanmamış ücretsiz öğe, +"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", +For operation {0}: Quantity ({1}) can not be greter than pending quantity({2}),"{0} işlemi için: Miktar ({1}), beklemedeki miktardan ({2}) daha emin olamaz", +For quantity {0} should not be greater than work order quantity {1},{0} miktarı için {1} iş emri miktarından büyük olmamalıdır, +Free item not set in the pricing rule {0},{0} fiyatlandırma kuralında ayarlanmamış ücretsiz öğe, From Date and To Date are Mandatory,Başlangıç Tarihi ve Bitiş Tarihi Zorunludur, -From employee is required while receiving Asset {0} to a target location,{0} Varlığını hedef alırken çalışmaktan gerekli, +From employee is required while receiving Asset {0} to a target location,{0} Varlığını hedef konuma alırken çalışandan gerekli, Fuel Expense,Yakıt Gideri, -Future Payment Amount,Devamındaki Ödeme Tutarı, -Future Payment Ref,Devamındaki Ödeme Ref, +Future Payment Amount,Gelecekteki Ödeme Tutarı, +Future Payment Ref,Gelecekteki Ödeme Ref, Future Payments,Gelecekteki Ödemeler, GST HSN Code does not exist for one or more items,GST HSN Kodu bir veya daha fazla öğe için mevcut değil, -Generate E-Way Bill JSON,E-İrsaliye JSON oluşturun, -Get Items,Ürünleri Getir, -Get Outstanding Documents,Kapanmamış/Ödenmemiş Belgeleri Getir, +Generate E-Way Bill JSON,E-Way Bill JSON oluşturun, +Get Items,Ürünleri alın, +Get Outstanding Documents,Üstün Belgeler Alın, Goal,Hedef, Greater Than Amount,Tutardan Büyük, Green,Yeşil, -Group,Grup, -Group By Customer,Müşteriye göre Grupla, -Group By Supplier,Tedarikçiye göre Grupla, -Group Node,Grup Düğümü, -Group Warehouses cannot be used in transactions. Please change the value of {0},Grup Depoları işlemlerinde taşıma. Lütfen {0} değerini değiştirin, +Group,grup, +Group By Customer,Müşteriye Göre Grupla, +Group By Supplier,Tedarikçiye Göre Grupla, +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 Maddesi, -"Helps you keep tracks of Contracts based on Supplier, Customer and Employee","Tedarikçi, Müşteri ve Çalışana Dayalı Sözleşmeleri takip görevlileri yardımcı olur", -Helps you manage appointments with your leads,Müşteri adaylarıyla randevularınızı yöneticinize yardımcı olur, +Help Article,Yardım Madde, +"Helps you keep tracks of Contracts based on Supplier, Customer and Employee","Tedarikçi, Müşteri ve Çalışana Dayalı Sözleşmeleri takip etmenize yardımcı olur", +Helps you manage appointments with your leads,Müşteri adaylarıyla randevularınızı yönetmenize yardımcı olur, Home,Ana Sayfa, IBAN is not valid,IBAN geçerli değil, Import Data from CSV / Excel files.,CSV / Excel dosyalarından Veri Aktar., -In Progress,Devam ediyor, +In Progress,Devam etmekte, Incoming call from {0},{0} den gelen arama, Incorrect Warehouse,Yanlış Depo, -Intermediate,Orta seviye, +Intermediate,Orta düzey, Invalid Barcode. There is no Item attached to this barcode.,Geçersiz Barkod Bu barkoda ekli bir ürün yok., Invalid credentials,Geçersiz kimlik bilgileri, -Invite as User,kullanıcı olarak Davet et, -Issue Priority.,Sorun Önceliği., +Invite as User,Kullanıcı olarak davet, +Issue Priority.,Öncelik Verme., Issue Type.,Sorun Tipi., -"It seems that there is an issue with the server's stripe configuration. In case of failure, the amount will get refunded to your account.","Sunucunun şerit çevresinde bir sorun var gibi görünüyor. Arıza durumunda, tutarları iade edilir.", +"It seems that there is an issue with the server's stripe configuration. In case of failure, the amount will get refunded to your account.","Sunucunun şerit yapılandırmasında bir sorun var gibi görünüyor. Arıza durumunda, tutar hesabınıza iade edilir.", Item Reported,Öğe Bildirildi, -Item listing removed,öğe listesi kaldırıldı, +Item listing removed,Öğe listesi kaldırıldı, Item quantity can not be zero,Ürün miktarı sıfır olamaz, Item taxes updated,Öğe vergileri güncellendi, -Item {0}: {1} qty produced. ,Öğe {0}: {1} adet oluşturma., -Joining Date can not be greater than Leaving Date,Katılım Tarihi Ayrılık Tarihinden daha büyük olamaz, +Item {0}: {1} qty produced. ,Öğe {0}: {1} adet üretildi., +Joining Date can not be greater than Leaving Date,Katılım Tarihi Ayrılma Tarihinden daha büyük olamaz, Lab Test Item {0} already exist,Laboratuar Test Öğesi {0} zaten var, Last Issue,Son Konu, -Latest Age,En Son Yaş, -Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay,"İzin projesi, {0} izin tahsisleri ile bağlantılı. İzinsiz yapılması, izinsiz izinsiz yapılamaz", -Leaves Taken,Alınan İzin, +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 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ı, çekilen menkul kıymetlere göre maksimum {0} kredi tutarını aşıyor", +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 Masrafı, +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ü, -Loan Security Pledge Created : {0},Kredi Güvenliği Rehin Oluşturuldu: {0}, +Loan Security Pledge Created : {0},Kredi Güvenliği Rehin Yaratıldı: {0}, Loan Security Price,Kredi Güvenliği Fiyatı, Loan Security Price overlapping with {0},{0} ile örtüşen Kredi Güvenliği Fiyatı, 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 birimleri {0} 'dan fazla olamaz, -Loan is mandatory,Kredi ağları, +Loan amount cannot be greater than {0},Kredi tutarı {0} '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 giriş 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önderiyor. içini görmek için isteyin., -Make Journal Entry,Yevmiye Kaydı Yap, -Make Purchase Invoice,Satınalma Faturası Oluşturma, +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,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ı!, -Message,Mesaj, +Message,İleti, Missing Values Required,Gerekli Eksik Değerler, -Mobile No,Cep No, -Mobile Number,Cep Numarası, +Mobile No,Mobil No, +Mobile Number,Cep numarası, Month,Ay, -Name,Adı, +Name,İsim, Near you,Sana yakın, -Net Profit/Loss,Net Kar/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 olmalı, +New release date should be in the future,Yeni çıkış tarihi gelecekte olmalı, Newsletter,Bülten, -No Account matched these filters: {},Bu filtrelerle doldurma Hesap yok: {}, -No Employee found for the given employee field value. '{}': {},verilen çalışanın saha değeri için çalışan bulunamadı. '{}': {}, +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 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ı, No description,açıklama yok, -No issue has been raised by the caller.,Arayan tarafından herhangi bir sorun beklenmiyor., -No items to publish,Yayın öğesi yok edilecek, -No outstanding invoices found,Ödenmemiş fatura alınamıyor, -No outstanding invoices found for the {0} {1} which qualify the filters you have specified.,Belirttiğiniz filtrelere uygun {0} {1} için ödenmemiş fatura bulunamıyor., -No outstanding invoices require exchange rate revaluation,"Ödenmemiş faturalar, döviz kuru yeniden değerlemesi vergileri", +No issue has been raised by the caller.,Arayan tarafından herhangi bir sorun gündeme gelmedi., +No items to publish,Yayınlanacak öğe yok, +No outstanding invoices found,Ödenmemiş fatura bulunamadı, +No outstanding invoices found for the {0} {1} which qualify the filters you have specified.,Belirttiğiniz filtrelere uygun {0} {1} için ödenmemiş fatura bulunamadı., +No outstanding invoices require exchange rate revaluation,"Ödenmemiş faturalar, döviz kuru yeniden değerlemesi gerektirmez", No reviews yet,Henüz değerlendirme yok, No views yet,Henüz görüntülenme yok, Non stock items,Stokta olmayan ürünler, -Not Allowed,İzin verilmedi, -Not allowed to create accounting dimension for {0},{0} için hesaplama boyutu oluşturmaya izin verilmiyor, +Not Allowed,İzin Değil, +Not allowed to create accounting dimension for {0},{0} için muhasebe boyutu oluşturmaya izin verilmiyor, Not permitted. Please disable the Lab Test Template,İzin verilmedi. Lütfen Laboratuvar Test Şablonunu devre dışı bırakın, -Note,Olumsuz, +Note,Not, Notes: ,Notlar:, On Converting Opportunity,Fırsat Dönüştürme Üzerine, On Purchase Order Submission,Satınalma Siparişi Gönderme İşleminde, @@ -3877,200 +3877,200 @@ On Sales Order Submission,Satış Siparişi Gönderme, On Task Completion,Görev Tamamlandıktan Sonra, On {0} Creation,{0} Yaratılışında, Only .csv and .xlsx files are supported currently,Şu anda yalnızca .csv ve .xlsx dosyaları desteklenmektedir, -Only expired allocation can be cancelled,Yalnızca süresi dolmuş tahsisler iptal edilebilir, -Only users with the {0} role can create backdated leave applications,"Yalnızca {0} rolüne sahip kullanıcılar, geriye dönük uygulamalara izin vermek", +Only expired allocation can be cancelled,Yalnızca süresi dolmuş tahsis iptal edilebilir, +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 İşletme Maliyeti, -Order Amount,Sipariş Tutarı, -Page {0} of {1},{1} {0} Sayfası, -Paid amount cannot be less than {0},Ücretli tutarlar {0} 'dan az olamaz, -Parent Company must be a group company,Ana Şirket bir grup şirket olmalıdır, +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ı'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, +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 koruma hapları veya kısa süreler tire içeremez. Format otomatik olarak yeniden yapılandıracak, +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 Öyküsü, -Pause,Durdur, -Pay,Ödeme yap, +Pause,durma, +Pay,Ödeme, Payment Document Type,Ödeme Belgesi Türü, Payment Name,Ödeme Adı, -Penalty Amount,Ceza Tutarı, +Penalty Amount,Ceza Miktarı, Pending,Bekliyor, -Performance,Performans, +Performance,performans, Period based On,Tarihine Göre Dönem, -Perpetual inventory required for the company {0} to view this report.,{0} şirketinin bu kanıtı görüntülemesi için sürekli envanter gerekiyor., +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,Pick List, +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şlemleri arşivleme hatası, -Please check the error log for details about the import errors,Lütfen ice aktarım hatalarıyla ilgili ayrıntılar için hata gününü kontrol edin, +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 DATEV Settings for Company {}.,Lütfen {} Şirketi için DATEV Ayarları oluşturun., -Please create adjustment Journal Entry for amount {0} ,Lütfen {0} için Yevmiye Kaydı düzenlemesini 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'den fazla öğe oluşturmayın, Please enter Difference Account or set default Stock Adjustment Account for company {0},Lütfen Fark Hesabı girin veya {0} şirketi için varsayılan Stok Ayarlama Hesabını 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 vergilerini almak için lütfen Ürün Kodunu giriniz, +Please enter Item Code to get item taxes,Ürün vergileri almak için lütfen Ürün Kodunu girin, Please enter Warehouse and Date,Lütfen Depo ve Tarihi giriniz, -Please enter the designation,Lütfen belirti giriniz, +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 incelemek için lütfen bir Marketplace Kullanıcısı olarak giriş yapın., -Please select Template Type to download template,Şablonu indirmek için lütfen Şablon Türü'nü 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üşteriyi Seçin, +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 Template Type to download template,Şablonu indirmek için lütfen Şablon Türü'nü 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 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ü'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öntemini seçin. şerit, '{0}' para birimini 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, '{0}' 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ın Öğelere karşı bir denetleyici ayarlayın., -Please set account heads in GST Settings for Compnay {0},Lütfen {0} Şirket 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ğini belirlemiştir, -Please set default UOM in Stock Settings,Lütfen Stok Ayarları'ndan varsayılan Birimi ayarı, -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 Depoya göre ayarlayın., -Please set up the Campaign Schedule in the Campaign {0},Lütfen {0} Kampanyasında Kampanyasında Saatlerini Ayarlayın, +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 UOM'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'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 setup a default bank account for company {0},Lütfen {0} şirketi için genel bir banka hesabı kurun, +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} kullanmak, +Please specify a {0},Lütfen bir {0} belirtin,lead Pledge Status,Rehin Durumu, Pledge Time,Rehin Zamanı, Printing,Baskı, Priority,Öncelik, Priority has been changed to {0}.,Öncelik {0} olarak değiştirildi., -Priority {0} has been repeated.,{0} önceliği tekrarlandı., +Priority {0} has been repeated.,{0} önceliği tekrar edildi., Processing XML Files,XML Dosyalarını İşleme, Profitability,Karlılık, Project,Proje, -Proposed Pledges are mandatory for secured Loans,Teminatlı Krediler için verilen rehinlerin dağıtımı hizmetleri, -Provide the academic year and set the starting and ending date.,Akademik yıl dönümü ve başlangıç ve bitiş tarihini ayarlayın., +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 Öge 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ınla, +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 İadesi, +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'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 zorunlu, -Quality Inspection required for Item {0} to submit,{0} Ürününün gönderilmesi için Kalite Kontrol gerekli, +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, Quantity to Manufacture,Üretim Miktarı, Quantity to Manufacture can not be zero for the operation {0},{0} işlemi için Üretim Miktarı sıfır olamaz, Quarterly,Üç ayda bir, -Queued,Sıraya alındı, -Quick Entry,Hızlı Giriş, +Queued,Sıraya alınmış, +Quick Entry,Hızlı Girişi, Quiz {0} does not exist,{0} yarışması mevcut değil, Quotation Amount,Teklif Tutarı, Rate or Discount is required for the price discount.,Fiyat indirimi için Oran veya İndirim gereklidir., Reason,Nedeni, Reconcile Entries,Mutabakat Girişleri, -Reconcile this account,Bu hesap mutabık kılma, +Reconcile this account,Bu hesabı mutabık kılma, Reconciled,Mutabık, Recruitment,İşe Alım, Red,Kırmızı, -Refreshing,Yenileniyor, -Release date must be in the future,Çıkış tarihi olmalı, +Refreshing,Güncelleniyor, +Release date must be in the future,Çıkış tarihi gelecekte olmalı, Relieving Date must be greater than or equal to Date of Joining,"Rahatlama Tarihi, Katılım Tarihinden büyük veya ona eşit olmalıdır", Rename,Yeniden adlandır, -Rename Not Allowed,Yeniden Adlandırmaya İzin Verilmiyor, -Repayment Method is mandatory for term loans,Vadeli krediler için geri ödeme yöntemleri, -Repayment Start Date is mandatory for term loans,Vadeli krediler için geri ödeme başlangıç tarihi, -Report Item,Öğeyi Bildir, -Report this Item,Bu öğeyi bildirin, +Rename Not Allowed,Yeniden Adlandır İzin Verilmez, +Repayment Method is mandatory for term loans,Vadeli krediler için geri ödeme yöntemi zorunludur, +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 Ü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,Garanti gereksinimleri olmayan tutarlarından fazla olamaz, -Review,Gözden geçir, -Room,Oda, +Return amount cannot be greater unclaimed amount,İade tutarı talep edilmemiş tutardan fazla olamaz, +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., -Row #{0}: Cannot delete item {1} which has already been delivered,Satır # {0}: geçmişte yayınlanmış {1} öğesi silinemiyor, -Row #{0}: Cannot delete item {1} which has already been received,Satır # {0}: geçmişte alınmış olan {1} öğesi silinemiyor, -Row #{0}: Cannot delete item {1} which has work order assigned to it.,Satır # {0}: İş emri atanmış {1} öğe silinemez., +Row #{0}: Cannot delete item {1} which has already been delivered,Satır # {0}: Önceden yayınlanmış {1} öğesi silinemiyor, +Row #{0}: Cannot delete item {1} which has already been received,Satır # {0}: Önceden alınmış olan {1} öğesi silinemiyor, +Row #{0}: Cannot delete item {1} which has work order assigned to it.,Satır # {0}: İş emri atanmış {1} öğesi silinemez., 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} işletme 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 halindeyken {4} Job Card ile güncelleyin., -Row #{0}: Payment document is required to complete the transaction,Satır # {0}: İşlemi gizlemek için ödeme belgesi gereklidir, +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}: 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}: 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, -Row {0}: Invalid Item Tax Template for item {1},Satır {0}: {1} öğe için geçersiz Öğe Vergi Şablonu, -Row {0}: Quantity not available for {4} in warehouse {1} at posting time of the entry ({2} {3}),Satır {0}: Girişin kaydettiği anında {1}haftasındaki {4} hacmi kullanılabilir değil ({2} {3}), -Row {0}: user has not applied the rule {1} on the item {2},Satır {0}: kullanıcı {2} işlemi {1} kuralını uygulamadı, +Row {0}: Invalid Item Tax Template for item {1},Satır {0}: {1} öğesi için geçersiz Öğe Vergi Şablonu, +Row {0}: Quantity not available for {4} in warehouse {1} at posting time of the entry ({2} {3}),Satır {0}: Girişin kaydedildiği tarihte {1} deposundaki {4} miktarı kullanılabilir değil ({2} {3}), +Row {0}: user has not applied the rule {1} on the item {2},Satır {0}: kullanıcı {2} öğesine {1} kuralını uygulamadı, Row {0}:Sibling Date of Birth cannot be greater than today.,Satır {0}: Kardeş Doğum Tarihi bugünden daha büyük olamaz., Row({0}): {1} is already discounted in {2},"Satır ({0}): {1}, {2} için zaten indirimli", -Rows Added in {0},{0} içindeki satırlar, -Rows Removed in {0},{0} sonuçları Satırlar Kaldırıldı, +Rows Added in {0},{0} içine eklenen satırlar, +Rows Removed in {0},{0} konumundaki Satırlar Kaldırıldı, Sanctioned Amount limit crossed for {0} {1},{0} {1} için Onaylanan Tutar sınırı aşıldı, -Sanctioned Loan Amount already exists for {0} against company {1},{1} yerleştirme karşı {0} için Onaylanan Kredi Tutarı zaten var, +Sanctioned Loan Amount already exists for {0} against company {1},{1} şirketine karşı {0} için Onaylanan Kredi Tutarı zaten var, Save,Kaydet, -Save Item,Öğeyi Kaydet, +Save Item,Öğe Kaydet, Saved Items,Kaydedilen Öğeler, Search Items ...,Öğeleri Ara ..., -Search for a payment,Ödeme Ara, -Search for anything ...,Bir şey arayın..., -Search results for,Arama sonuçları için, +Search for a payment,Ödeme arayın, +Search for anything ...,Bir şey arayın ..., +Search results for,için arama sonuçları, Select All,Tümünü Seç, Select Difference Account,Fark Hesabı Seç, -Select a Default Priority.,Varsayılan bir öğe seçin., +Select a Default Priority.,Varsayılan bir öncelik seçin., Select a company,Bir şirket seçin, -Select finance book for the item {0} at row {1},{1} bilgisindeki {0} madde için pazarlama kitabını seçin, +Select finance book for the item {0} at row {1},{1} satırındaki {0} maddesi için finansman kitabını seçin, Select only one Priority as Default.,Varsayılan olarak sadece bir Öncelik seçin., -Seller Information,Satıcı Bilgisi, +Seller Information,Satıcı bilgisi, Send,Gönder, -Send a message,Bir mesaj geçti, -Sending,Gönderiliyor, -Sends Mails to lead or contact based on a Campaign schedule,Bir Kampanya planına göre Adaya veya İlgili kişiye Postaları gönderir, +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ş öğe için seri numarası gerekli, -Series,Kayıt Serisi, -Server Error,Sunucu Hatası, -Service Level Agreement has been changed to {0}.,Hizmet Seviyesi Sözleşmesi {0} olarak kaldırıldı., +Serial no(s) required for serialized item {0},{0} serileştirilmiş öğesi için seri numarası gerekli, +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., Set,Ayarla, -Set Meta Tags,Meta Etiketleri Ayarla, -Set {0} in company {1},{1} şirketinde {0} Ayarla, +Set Meta Tags,Meta Etiketlerini Ayarla, +Set {0} in company {1},{1} şirketinde {0} ayarlayın, Setup,Kurulum, Setup Wizard,Kurulum Sihirbazı, Shift Management,Vardiya Yönetimi, Show Future Payments,Gelecekteki Ödemeleri Göster, -Show Linked Delivery Notes,Bağlı İrsaliyeleri Göster, -Show Sales Person,Satış Elemanını Göster, -Show Stock Ageing Data,Stok Yaşlandırma Verisini Göster, -Show Warehouse-wise Stock,Depo-Stok Stokunu Göster, +Show Linked Delivery Notes,Bağlantılı Teslimat Notlarını Göster, +Show Sales Person,Satış Görevlisini Göster, +Show Stock Ageing Data,Stok Yaşlanma Verilerini Göster, +Show Warehouse-wise Stock,Depo-Stok Stoğunu Göster, Size,Boyut, -Something went wrong while evaluating the quiz.,Sınavı değerlendirirken bir şey ters gitti., -Sr,Kıdemli, +Something went wrong while evaluating the quiz.,Sınavı değerlendirirken bir şeyler ters gitti., +Sr,Sr, Start,Başlangıç, -Start Date cannot be before the current date,"Başlangıç Tarihi, geçerli karşılaştırma önce olamaz", +Start Date cannot be before the current date,"Başlangıç Tarihi, geçerli tarihten önce olamaz", Start Time,Başlangıç Zamanı, -Status,Durumu, +Status,Durum, Status must be Cancelled or Completed,Durum İptal Edilmeli veya Tamamlandı, -Stock Balance Report,Stok Bakiyesi Raporu, -Stock Entry has been already created against this Pick List,Bu Seçim Listesine karşı Stok Hareketi zaten oluşturulmuş, +Stock Balance Report,Borsa Dengesi Raporu, +Stock Entry has been already created against this Pick List,Bu Seçim Listesi'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 gönderme sahibi öğrenci mevcut değil, -Submit Review,İncelemeyi Gönder, -Submitted,İşlendi, +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 Adresler ve İletişim, Synchronize this account,Bu hesabı senkronize et, Tag,Etiket, @@ -4078,7 +4078,7 @@ Target Location is required while receiving Asset {0} from an employee,Bir çal Target Location is required while transferring Asset {0},{0} Varlığı aktarılırken Hedef Konum gerekli, Target Location or To Employee is required while receiving Asset {0},{0} Varlığı alınırken Hedef Yer veya Çalışan için gerekli, Task's {0} End Date cannot be after Project's End Date.,"Görev {0} Bitiş Tarihi, Projenin Bitiş Tarihinden sonra olamaz.", -Task's {0} Start Date cannot be after Project's End Date.,"Görev {0} Başlangıç Tarihi, Görev Bitiş Tarihinden sonra olamaz.", +Task's {0} Start Date cannot be after Project's End Date.,"Görev {0} Başlangıç Tarihi, Projenin Bitiş Tarihinden sonra olamaz.", Tax Account not specified for Shopify Tax {0},Shopify Vergisi için Vergi Hesabı belirtilmedi {0}, Tax Total,Vergi Toplamı, Template,Şablon, @@ -4086,109 +4086,109 @@ The Campaign '{0}' already exists for the {1} '{2}',"'{0}' Kampanyası, 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, -The following serial numbers were created:

{0},Aşağıdaki seri numaraları verilmiştir:

{0}, +The following serial numbers were created:

{0},Aşağıdaki seri numaraları oluşturuldu:

{0}, The parent account {0} does not exists in the uploaded template,Yüklenen şablonda {0} üst hesabı yok, The question cannot be duplicate,Soru kopyalanamaz, The selected payment entry should be linked with a creditor bank transaction,Seçilen ödeme girişi bir alacaklı banka işlemi ile bağlantılı olmalıdır, -The selected payment entry should be linked with a debtor bank transaction,Seçilen ödeme girişi borçlu banka işlemiyle tüketilmelidir, -The total allocated amount ({0}) is greated than the paid amount ({1}).,"Tahsis edilen tutarlar ({0}), kullandıkları tutarlardan ({1}) elde edilir.", +The selected payment entry should be linked with a debtor bank transaction,Seçilen ödeme girişi borçlu banka işlemiyle ilişkilendirilmelidir, +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 kaybolacaktır. 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'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}, -This page keeps track of items you want to buy from sellers.,Bu sayfa satıcılardan satınalmak istediğiniz ürünleri takip eder., -This page keeps track of your items in which buyers have showed some interest.,"Bu sayfa, alıcıların ilgi gösterdiği nesnelerin telif hakları saklıdır.", +This page keeps track of items you want to buy from sellers.,Bu sayfa satıcılardan satın almak istediğiniz ürünleri takip eder., +This page keeps track of your items in which buyers have showed some interest.,"Bu sayfa, alıcıların ilgi gösterdiği öğelerin kaydını tutar.", 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ıya alınmasına izin vermek için, Stok Ayarları veya Öğedeki "Aşırı Alındı / Teslimat Ödeneği" ni güncelleyin.", -To date needs to be before from date,Bugüne kadar bu konuda daha önce olması gerekiyor, +"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 date needs to be before from date,Bugüne kadar tarihten önce olması gerekiyor, Total,Toplam, Total Early Exits,Toplam Erken Çıkış, Total Late Entries,Toplam Geç Girişler, -Total Payment Request amount cannot be greater than {0} amount,Toplam Ödeme isteğini barındırmak {0} büyük olamaz, -Total payments amount can't be greater than {},Toplam ödeme kümeleri {} den fazla olamaz, +Total Payment Request amount cannot be greater than {0} amount,Toplam Ödeme İsteği tutarı {0} tutarından büyük olamaz, +Total payments amount can't be greater than {},Toplam ödeme tutarı {} den fazla olamaz, Totals,Toplamlar, Training Event:,Eğitim Etkinliği:, Transactions already retreived from the statement,İşlemler zaten ifadeden alındı, Transfer Material to Supplier,Tedarikçi Malzeme Transferi, -Transport Receipt No and Date are mandatory for your chosen Mode of Transport,Seçtiğiniz Ulaşım Modu için Nakliye Fişi No ve Tarihi mahkumları, +Transport Receipt No and Date are mandatory for your chosen Mode of Transport,Seçtiğiniz Ulaşım Modu için Nakliye Fişi No ve Tarihi zorunludur, Tuesday,Salı, Type,Türü, Unable to find Salary Component {0},{0} Maaş Bileşeni bulunamıyor, -Unable to find the time slot in the next {0} days for the operation {1}.,{1} işlemi için sonraki {0} gün içinde zaman aralığında bulunamıyor., -Unable to update remote activity,Uzak Faaliyet güncellenemiyor, -Unknown Caller,bilinmeyen arama, -Unlink external integrations,Dış entegrasyonların aktarımlarını kaldır, -Unmarked Attendance for days,Günlerce işaretsiz bağlantı, +Unable to find the time slot in the next {0} days for the operation {1}.,{1} işlemi için sonraki {0} gün içinde zaman aralığı bulunamıyor., +Unable to update remote activity,Uzak etkinlik güncellenemiyor, +Unknown Caller,Bilinmeyen arama, +Unlink external integrations,Dış entegrasyonların bağlantısını kaldır, +Unmarked Attendance for days,Günlerce işaretsiz katılım, Unpublish Item,Yayından kaldır, -Unreconciled,Uzlaşmamış, +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ı çalıştırın veya mutabakat yapın", +"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, -Use a name that is different from previous project name,Önceki proje dosyalarından farklı bir ad kullan, +Use a name that is different from previous project name,Önceki proje adından farklı bir ad kullanın, 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 patlamalardan 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.", -Valuation Rate required for Item {0} at row {1},{1} bilgisindeki {0} Maddesi için Değerleme Oranı gerekli, -Values Out Of Sync,Senkronizasyon Dış Değerler, +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.", +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'i dogrula, -View,Göster, +Vendor Name,Satıcı adı, +Verify Email,E-mail'i doğrula, +View,Görünüm, View all issues from {0},{0} 'daki tüm sorunları görüntüle, -View call log,Arama gününü görüntüle, +View call log,Arama günlüğünü görüntüle, Warehouse,Depo, Warehouse not found against the account {0},{0} hesabına karşı depo bulunamadı, Welcome to {0},Hoşgeldiniz {0}, -Why do think this Item should be removed?,Bu öğenin neden kısıtlamaları gereği var?, +Why do think this Item should be removed?,Bu öğenin neden kaldırılması gerektiğini düşünüyorsunuz?, Work Order {0}: Job Card not found for the operation {1},{0} İş Emri: {1} işlemi için kartvizit bulunamadı, -Workday {0} has been repeated.,{0} iş günü tekrarlandı., +Workday {0} has been repeated.,{0} iş günü tekrar edildi., XML Files Processed,İşlenen XML Dosyaları, Year,Yıl, Yearly,Yıllık, -You,Şahsım, +You,Siz, You are not allowed to enroll for this course,Bu kursa kayıt olma izniniz yok, -You are not enrolled in program {0},{0} zorla kaydolmadınız, -You can Feature upto 8 items.,8 öğeye kadar Özelleştirebilirsiniz., -You can also copy-paste this link in your browser,Ayrıca bu link kopyalarını tarayıcınıza yapıştırabilirsiniz, -You can publish upto 200 items.,200'e kadar öğe yayınlayabilirsiniz., -You have to enable auto re-order in Stock Settings to maintain re-order levels.,Yeniden sipariş korumalarını 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 mutlaka olmalıdır, -You need to login as a Marketplace User before you can add any reviews.,Herhangi bir inceleme ekleyebilmeniz için daha önce bir Marketplace Kullanıcısı olarak giriş yapmanız gerekir., +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 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 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 profil, -Your rating:,Dereceniz:, +Your Profile,Senin profil, +Your rating:,Sizin dereceniz:, and,ve, -e-Way Bill already exists for this document,e-İrsaliye bu belge için zaten var, -woocommerce - {0},WooCommerce - {0}, +e-Way Bill already exists for this document,e-Way Bill bu belge için zaten var, +woocommerce - {0},woocommerce - {0}, {0} Coupon used are {1}. Allowed quantity is exhausted,{0} Kullanılan kupon {1}. İzin verilen miktar tükendi, -{0} Name,{0} Adı, +{0} Name,{0} Ad, {0} Operations: {1},{0} İşlemler: {1}, -{0} bank transaction(s) created,{0} banka işlemi oluşturuldu, -{0} bank transaction(s) created and {1} errors,{0} banka işlemi oluşturuldu ve {1} hatalar, +{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} 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 yerel tedarikçi değildir.", -{0} is required,{0} içerir, +{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ı, {} 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 gerekli {}, +{} is required to generate E-Way Bill JSON,e-Way Bill JSON'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, Total Expense This Year,Bu Yıl Toplam Gider, -Total Income,toplam gelir, +Total Income,Toplam gelir, Total Income This Year,Bu Yıl Toplam Gelir, Barcode,Barkod, Bold,cesur, @@ -4196,195 +4196,195 @@ Center,Merkez, Clear,Açık, Comment,Yorum Yap, Comments,Yorumlar, -DocType,Belge Türü, +DocType,DocType, Download,İndir, -Left,Sol, +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,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ı cezaları, +Loan Amount is mandatory,Kredi Tutarı zorunludur, Mode Of Payment,Ödeme Şekli, -No students Found,Öğrenci Bulunamadı, +No students Found,Öğrenci bulunamadı, Not in Stock,Stokta yok, Please select a Customer,Lütfen bir müşteri seçin, -Printed On,Yazdırma Tarihi, -Received From,Alındığı Yer, -Sales Person,Satış Elemanı, -To date cannot be before From date,Bitiş tarihi başlatma cezaları önce bitirme, +Printed On,Baskılı Açık, +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 ,Gerçek , -Add to cart,Sepete Ekle, +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, End date can not be less than start date,"Bitiş Tarihi, Başlangıç Tarihinden daha az olamaz", -For Default Supplier (Optional),Varsayılan tedarikçi için (İsteğe bağlı), -From date cannot be greater than To date,Tarihten bugüne kadardan ileride olamaz, -Group by,Gruplandır, -In stock,Stokta, +For Default Supplier (Optional),Varsayılan Tedarikçi için (İsteğe bağlı), +From date cannot be greater than To date,Tarihten itibaren tarihe kadardan ileride olamaz, +Group by,Grup tarafından, +In stock,Stokta var, Item name,Ürün Adı, -Loan amount is mandatory,Kredi tutarı zorunlu, -Minimum Qty,Minimum Mik, +Loan amount is mandatory,Kredi tutarı zorunludur, +Minimum Qty,Minimum adet, More details,Daha fazla detay, Nature of Supplies,Malzemelerin Doğası, No Items found.,Hiç bir öğe bulunamadı., No employee found,Çalışan bulunmadı, -No students found,Hiçbir öğrenci yok, +No students found,Hiçbir öğrenci Bulundu, Not in stock,Stokta yok, Not permitted,İzin verilmedi, -Open Issues ,Açık Sorunlar, +Open Issues ,Açık sorunlar, Open Projects ,Açık Projeler, -Open To Do ,Açık Yapılacaklar, +Open To Do ,To Do Aç, Operation Id,Operasyon Kimliği, -Partially ordered,Yoğun Sıralı, +Partially ordered,kısmen Sıralı, Please select company first,İlk Şirket seçiniz, Please select patient,Lütfen hastayı seçin, -Printed On ,Basım tarihi, +Printed On ,Basılı, Projected qty,Öngörülen Adet, 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 Bağlantısı gerekli, +Source Location is required for the Asset {0},{0} varlığına ait Kaynak Konumu gerekli, Tax Id,Vergi numarası, -To Time,Bitiş Zamanı, +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ı, Value or Qty,Değer Veya Adet, Variance ,Varyans, -Variant of,Varyant, +Variant of,Of Varyant, Write off,Şüpheli Alacak, -hours,saat, -received from,Alındığı yer, -to,Şu kişi, +hours,Saat, +received from,Dan alındı, +to,Şu kişiye, Cards,Kartlar, Percentage,Yüzde, -Failed to setup defaults for country {0}. Please contact support@erpnext.com,{0} ülke için varsayılanlar ayarlanamadı. Lütfen support@erpnext.com ile iletişim 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} öğe bir Seri / Toplu İş Öğesi değil. Seri No / Parti No'ya karşı olamaz., -Please set {0},Lütfen {0} ayarı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> Eğitim Yönetimi bölümü Eğitmen Adlandırma Sistemini kurun, +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., +Please set {0},Lütfen {0} ayarlayınız, +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> 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> Ayarlar> 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} bileşeni için UOM Dönüşüm faktörü ({0} -> {1}) bulunamadı., +UOM Conversion factor ({0} -> {1}) not found for item: {2},{2} öğesi için UOM Dönüşüm faktörü ({0} -> {1}) bulunamadı., Item Code > Item Group > Brand,Ürün Kodu> Ürün Grubu> Marka, -Customer > Customer Group > Territory,Müşteri> Müşteri Grubu> bölge, -Supplier > Supplier Type,tedarikçi> Tedarikçi Türü, -Please setup Employee Naming System in Human Resource > HR Settings,Lütfen İnsan Kaynakları> İK Yapılandırma bölümü Çalışan Adlandırma Sistemini kurun, -Please setup numbering series for Attendance via Setup > Numbering Series,Lütfen Katılım> Numaralandırma Serisi yoluyla 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 gösterge gösterir", -Auto Fetch,Otomatik Geliştirme, -Fetch Serial Numbers based on FIFO,FIFO'ya göre Seri Numaralarını getir, +Customer > Customer Group > Territory,Müşteri> Müşteri Grubu> Bölge, +Supplier > Supplier Type,Tedarikçi> Tedarikçi Türü, +Please setup Employee Naming System in Human Resource > HR Settings,Lütfen İnsan Kaynakları> İ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> 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, "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çinde {0} onayın devre dışı bırakılması.", +"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}", No additional expenses has been added,Hiçbir ek masraf eklenmedi, -Asset{} {assets_link} created for {},{} {assets_link} bileşenlerinin varlığı, -Row {}: Asset Naming Series is mandatory for the auto creation for item {},"Satır {}: Öğe Adlandırma Serisi, {} öğelerin otomatik düzenleme için sunucular", -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 gerekir., +Asset{} {assets_link} created for {},{} İçin {assets_link} öğesi oluşturuldu, +Row {}: Asset Naming Series is mandatory for the auto creation for item {},"Satır {}: Öğe Adlandırma Serisi, {} öğesinin otomatik oluşturulması için zorunludur", +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, +Invalid Account,Geçersiz hesap, 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 Ödendi, +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} öğe, 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 ayarlar için kullanılan Toplu Öğe {1} için {0} ayarlayın., -Expiry Date Mandatory,Son Kullanım Tarihi Zorunlu, +"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., +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ı şekilde, +BOM 1 {0} and BOM 2 {1} should not be same,BOM 1 {0} ve BOM 2 {1} aynı olmamalıdır, Note: Item {0} added multiple times,Not: {0} öğesi birden çok kez eklendi, YouTube,Youtube, Vimeo,Vimeo, Publish Date,Yayın tarihi, -Duration,Süre, +Duration,süre, Advanced Settings,Gelişmiş Ayarlar, -Path,Path, +Path,yol, Components,Bileşenler, Verified By,Onaylayan Kişi, -Invalid naming series (. missing) for {0},{0} için geçersiz tanımlayıcıma serisi (.Eksik), +Invalid naming series (. missing) for {0},{0} için geçersiz adlandırma serisi (. Eksik), Filter Based On,Şuna Göre Filtrele, Reqd by date,Tarihe göre talep, Manufacturer Part Number {0} is invalid,Üretici Parça Numarası {0} geçersiz, Invalid Part Number,Geçersiz Parça Numarası, -Select atleast one Social Media from Share on.,Share on en az bir Sosyal Medya Seçin., +Select atleast one Social Media from Share on.,Share on'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'den az olmalıdır., Error while POSTING {0},{0} YAYINLANMA sırasında hata, -"Session not valid, Do you want to login?","Oturum mevcut değil, Giriş yapmak istiyor musunuz?", -Session Active,Oturum Etkinleştirme, -Session Not Active. Save doc to login.,Oturum Etkin Değil. Giriş yapmak için belgeleri arşivleme., +"Session not valid, Do you want to login?","Oturum geçerli değil, Giriş yapmak istiyor musunuz?", +Session Active,Oturum Etkin, +Session Not Active. Save doc to login.,Oturum Etkin Değil. Giriş yapmak için dokümanı kaydedin., Error! Failed to get request token.,Hata! İstek belirteci alınamadı., Invalid {0} or {1},Geçersiz {0} veya {1}, 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ünler., -Session is expired. Save doc to login.,Oturumun süresi doldu. Giriş yapmak için belgeleri arşivleme., +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, -Valid Upto date cannot be before Valid From date,"Geçerli Güncel tarih, Geçerlilik Başlangıç kullanımından önce olamaz", +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çerlilik Tarih {0} Mali Yıl değil, -Group Roll No,Grup Rulo No, -Maintain Same Rate Throughout Sales Cycle,Satış Döngüsü Boyunca Aynı Oranı Koru, +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.", Must be Whole Number,Tam Numara olmalı, -Please setup Razorpay Plan ID,Lütfen Razorpay Plan Kimliğinizi ayarlayın, -Contact Creation Failed,Kişi Oluşturamadı, +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,Süresi Biten İzinler, -Leave Without Pay does not match with approved {} records,"Ödemesiz bırakma, mahremiyetler {} kayıtlarıyla eşleşmiyor", +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ı, Income Tax Slab must be effective on or before Payroll Period Start Date: {0},"Gelir Vergisi Levhası, Bordro Dönemi Başlangıç Tarihi: {0}", No leave record found for employee {0} on {1},{1} tarihinde {0} çalışanı için izin kaydı bulunamadı, Row {0}: {1} is required in the expenses table to book an expense claim.,Satır {0}: Bir gider talebi rezerve etmek için gider tablosunda {1} gereklidir., -Set the default account for the {0} {1},{0} {1} için varsayılan hesap ayarı, +Set the default account for the {0} {1},{0} {1} için varsayılan hesabı ayarlayın, (Half Day),(Yarım gün), Income Tax Slab,Gelir Vergisi Levhası, -Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary,Satır # {0}: Vergilendirilebilir Maaşa Dayali işletimle {1} Maaş Bileşeni için tutar veya formüller ayarlanamaz, -Row #{}: {} of {} should be {}. Please modify the account or select a different account.,"Satır # {}: {} / {}, {} olmalıdır. Lütfen sahip olunan hesabı veya farklı bir hesap seçin.", +Row #{0}: Cannot set amount or formula for Salary Component {1} with Variable Based On Taxable Salary,Satır # {0}: Vergilendirilebilir Maaşa Dayalı Değişkenle {1} Maaş Bileşeni için tutar veya formül ayarlanamaz, +Row #{}: {} of {} should be {}. Please modify the account or select a different account.,"Satır # {}: {} / {}, {} olmalıdır. Lütfen hesabı değiştirin veya farklı bir hesap seçin.", 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 Warehouse'u WooCommerce Ayarlarında ayarlayın, +Please set Warehouse in Woocommerce Settings,Lütfen Warehouse'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 Tablolarındaki Son Tarih Kayıt Tarihinden önce 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} grubu süresi zaten doldu., -Start Year and End Year are mandatory,Başlangıç Yılı ve Bitiş Yılı cezaları, +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, 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} ülke için gönderi düzenlemesi geçerli değil, -Get Payments from,Ödemeleri yaptırın alın, +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, Set Shipping Address or Billing Address,Gönderim Adresini veya Fatura Adresini Ayarlayın, Consultation Setup,Danışma Kurulumu, -Fee Validity,Ücret geçerliliği, +Fee Validity,Ücret Geçerliği, Laboratory Setup,Laboratuvar Kurulumu, -Dosage Form,Dozaj formülü, +Dosage Form,Dozaj formu, Records and History,Kayıtlar ve Tarih, Patient Medical Record,Hasta Tıbbi Kayıt, Rehabilitation,Rehabilitasyon, @@ -4392,32 +4392,32 @@ Exercise Type,Egzersiz Tipi, Exercise Difficulty Level,Egzersiz Zorluk Seviyesi, Therapy Type,Tedavi Türü, Therapy Plan,Terapi Planı, -Therapy Session,Terapi Seansı, +Therapy Session,Terapi seansı, Motor Assessment Scale,Motor Değerlendirme Ölçeği, [Important] [ERPNext] Auto Reorder Errors,[Önemli] [ERPNext] Otomatik Yeniden Sıralama Hataları, -Regards,Saygılarımızla, -The following {0} were created: {1},Aşağıdaki {0} eseri: {1}, +"Regards,","Saygılarımızla,", +The following {0} were created: {1},Aşağıdaki {0} oluşturuldu: {1}, Work Orders,İş Emirleri, -The {0} {1} created sucessfully,{0} {1} başarıyla kuruldu, -Work Order cannot be created for following reason:
{0},İş Emri aşağıdaki neden oluşturulamaz:
{0}, -Add items in the Item Locations table,Öğe Konumları tablona öğe ekleyin, -Update Current Stock,Mevcut Stok 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 örneklemei koleksiyonu için Parti Numarası Var'ı takip etmek", +The {0} {1} created sucessfully,{0} {1} başarıyla oluşturuldu, +Work Order cannot be created for following reason:
{0},İş Emri aşağıdaki nedenle oluşturulamaz:
{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", Empty,Boş, Currently no stock available in any warehouse,Şu anda herhangi bir depoda stok yok, -BOM Qty,ürün reçetesi adet, +BOM Qty,BOM Adet, Time logs are required for {0} {1},{0} {1} için zaman günlükleri gereklidir, Total Completed Qty,Toplam Tamamlanan Miktar, Qty to Manufacture,Üretilecek Miktar, -Repay From Salary can be selected only for term loans,Maaştan Geri Ödeme beklemek krediler için kullanmak, +Repay From Salary can be selected only for term loans,Maaştan Geri Ödeme yalnızca vadeli krediler için seçilebilir, No valid Loan Security Price found for {0},{0} için geçerli bir Kredi Menkul Kıymet Fiyatı bulunamadı, Loan Account and Payment Account cannot be same,Kredi Hesabı ve Ödeme Hesabı aynı olamaz, -Loan Security Pledge can only be created for secured loans,Kredi Teminat Rehni yalnızca garantili krediler için oluşturulabilir, +Loan Security Pledge can only be created for secured loans,Kredi Teminat Rehni yalnızca teminatlı krediler için oluşturulabilir, Social Media Campaigns,Sosyal Medya Kampanyaları, From Date can not be greater than To Date,"Başlangıç Tarihi, Bitiş Tarihinden büyük olamaz", -Please set a Customer linked to the Patient,Lütfen Hastaya bağlı bir müşteri seçtiği, +Please set a Customer linked to the Patient,Lütfen Hastaya bağlı bir Müşteri belirleyin, Customer Not Found,Müşteri Bulunamadı, -Please Configure Clinical Procedure Consumable Item in ,Lütfen Klinik vida Sarf Malzemesini Yapılandırın, +Please Configure Clinical Procedure Consumable Item in ,Lütfen Klinik Prosedür Sarf Malzemesini Yapılandırın, Missing Configuration,Eksik Yapılandırma, Out Patient Consulting Charge Item,Out Hasta Danışmanlık Ücreti Öğesi, Inpatient Visit Charge Item,Yatan Hasta Ziyaret Ücreti, @@ -4428,82 +4428,82 @@ Test: ,Ölçek:, Collection Details: ,Koleksiyon Ayrıntıları:, {0} out of {1},{0} / {1}, Select Therapy Type,Tedavi Türünü Seçin, -{0} sessions completed,{0} imzalama tamamlandı, -{0} session completed,{0} imzalama tamamlandı, +{0} sessions completed,{0} oturum tamamlandı, +{0} session completed,{0} oturum tamamlandı, out of {0},{0} üzerinden, -Therapy Sessions,Terapi Seanları, +Therapy Sessions,Terapi Seansları, Add Exercise Step,Egzersiz Adımı Ekle, Edit Exercise Step,Egzersiz Adımını Düzenleyin, Patient Appointments,Hasta Randevuları, Item with Item Code {0} already exists,Öğe Kodu {0} olan öğe zaten var, Registration Fee cannot be negative or zero,Kayıt Ücreti negatif veya sıfır olamaz, -Configure a service Item for {0},{0} için bir hizmet Öğesi yapılandırmanın, +Configure a service Item for {0},{0} için bir hizmet Öğesi yapılandırın, Temperature: ,Sıcaklık:, -Pulse: ,Nabiz:, -Respiratory Rate: ,solunum hızı:, +Pulse: ,Nabız:, +Respiratory Rate: ,Solunum hızı:, BP: ,BP:, BMI: ,BMI:, -Note: ,Olumsuz:, -Check Availability,Uygunluk kontrol et, +Note: ,Not:, +Check Availability,Uygunluğu kontrol et, Please select Patient first,Lütfen önce Hastayı seçin, Please select a Mode of Payment first,Lütfen önce bir Ödeme Modu seçin, -Please set the Paid Amount first,Lütfen önce Ödenen Tutarı ayarı, +Please set the Paid Amount first,Lütfen önce Ödenen Tutarı ayarlayın, Not Therapies Prescribed,Reçetesiz Terapiler, There are no Therapies prescribed for Patient {0},Hasta için reçete edilmiş hiçbir Terapi yoktur {0}, Appointment date and Healthcare Practitioner are Mandatory,Randevu tarihi ve Sağlık Hekimi Zorunludur, -No Prescribed Procedures found for the selected Patient,Seçilen Hasta için Reçeteli bulunmaması, +No Prescribed Procedures found for the selected Patient,Seçilen Hasta için Reçeteli Prosedür bulunamadı, Please select a Patient first,Lütfen önce bir Hasta seçin, -There are no procedure prescribed for ,Herhangi bir cerrahi yoktur., +There are no procedure prescribed for ,Herhangi bir prosedür yoktur., Prescribed Therapies,Reçeteli Tedaviler, -Appointment overlaps with ,Randevu şununla sınırlıyor:, -{0} has appointment scheduled with {1} at {2} having {3} minute(s) duration.,"{0}, {1} ile {2} için {3} dakikayı misafir etmeyi planladı.", -Appointments Overlapping,Çakışan Randevüleri, +Appointment overlaps with ,Randevu şununla çakışıyor:, +{0} has appointment scheduled with {1} at {2} having {3} minute(s) duration.,"{0}, {1} ile {2} için {3} dakika süreli randevu planladı.", +Appointments Overlapping,Çakışan Randevular, Consulting Charges: {0},Danışmanlık Masrafları: {0}, -Appointment Cancelled. Please review and cancel the invoice {0},Randevu İptal Edildi. Lütfen faturayı talep edin ve iptal edin {0}, +Appointment Cancelled. Please review and cancel the invoice {0},Randevu İptal Edildi. Lütfen faturayı inceleyin ve iptal edin {0}, Appointment Cancelled.,Randevu İptal Edildi., -Fee Validity {0} updated.,Ücret yaptırımı {0} güncellendi., +Fee Validity {0} updated.,Ücret Geçerliliği {0} güncellendi., 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, +{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, 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?,idamü başlatacak stok miktarı Depo {0} 'da mevcut değil. Bir Stok Hareketi 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} 'da mevcut değil. Bir Stok Girişi kaydetmek istiyor musunuz?, {0} as on {1},"{0}, {1}", -Clinical Procedure ({0}):,Klinik çevre ({0}):, +Clinical Procedure ({0}):,Klinik Prosedür ({0}):, Please set Customer in Patient {0},Lütfen Müşteriyi Hasta olarak ayarlayın {0}, -Item {0} is not active,{0} varlık aktif değil, -Therapy Plan {0} created successfully.,Tedavi Planı {0} başarıyla kuruldu., -Symptoms: ,birlikte olmak:, +Item {0} is not active,{0} öğesi aktif değil, +Therapy Plan {0} created successfully.,Tedavi Planı {0} başarıyla oluşturuldu., +Symptoms: ,Belirtiler:, No Symptoms,Belirti Yok, Diagnosis: ,Teşhis:, No Diagnosis,Tanı Yok, Drug(s) Prescribed.,Reçeteli İlaç (lar)., -Test(s) Prescribed.,Test (ler) önerilebilir., -Procedure(s) Prescribed.,Öngörülen işlemler (ler)., +Test(s) Prescribed.,Test (ler) Önerilen., +Procedure(s) Prescribed.,Öngörülen prosedür (ler)., Counts Completed: {0},Tamamlanan Sayımlar: {0}, Patient Assessment,Hasta değerlendirmesi, -Assessments,değerlendirmeler, -Heads (or groups) against which Accounting Entries are made and balances are maintained.,Kafaları (veya grupları) kendisine karşı Muhasebe Girişleri yapılır ve bilançoları korunur., -Account Name,Hesap Adı, +Assessments,Değerlendirmeler, +Heads (or groups) against which Accounting Entries are made and balances are maintained.,Kafaları (veya gruplar) kendisine karşı Muhasebe Girişler yapılır ve dengeler korunur., +Account Name,Hesap adı, Inter Company Account,Şirket Hesabı, Parent Account,Ana Hesap, -Setting Account Type helps in selecting this Account in transactions.,Hesap Türünü ayarlar işlemlerinde bu hesabın kullanımıen yardımcı olur, -Chargeable,ücretli, -Rate at which this tax is applied,Vergi uygulama oranı, +Setting Account Type helps in selecting this Account in transactions.,Hesap Türünü ayarlamak işlemlerde bu hesabı seçeren yardımcı olur, +Chargeable,Ücretli, +Rate at which this tax is applied,Vergi uygulanma oranı, Frozen,Dondurulmuş, -"If the account is frozen, entries are allowed to restricted users.","Hesap donmuşsa, girilenler zorla açılır.", -Balance must be,Bakiye şu olmalı, +"If the account is frozen, entries are allowed to restricted users.","Hesap dondurulmuş ise, girdiler kısıtlı kullanıcılara açıktır.", +Balance must be,Bakiye şu olmalıdır, Lft,Lft, -Rgt,sağ, -Old Parent,Eski yapı, +Rgt,Rgt, +Old Parent,Eski Ebeveyn, Include in gross,Brüt dahil, Auditor,Denetçi, Accounting Dimension,Muhasebe Boyutu, -Dimension Name,boyut adı, -Dimension Defaults,Boyut varsayılanları, +Dimension Name,Boyut adı, +Dimension Defaults,Boyut Varsayılanları, Accounting Dimension Detail,Muhasebe Boyut Detayı, Default Dimension,Varsayılan Boyut, Mandatory For Balance Sheet,Bilanço Zorunlu, @@ -4511,118 +4511,118 @@ Mandatory For Profit and Loss Account,Kar Zarar Hesabı İçin Zorunlu, Accounting Period,Muhasebe Dönemi, Period Name,Dönem Adı, Closed Documents,Kapalı Belgeler, -Accounts Settings,Hesap Ayarları, +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şturun, -Users with this role are allowed to set frozen accounts and create / modify accounting entries against frozen accounts,Bu rol sahibi kullanıcıların şifreli hesapları düzenleme ve şifrelenmiş hesaplara karşı muhasebe girdileri oluşturma/düzenleme yetkileri vardır, +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 Kontrolü, -Check Supplier Invoice Number Uniqueness,Kullanıcı tedarikçisi Fatura Numarasını Kontrol Edin, -Make Payment via Journal Entry,Devmiye Kayıtları yoluyla Ödeme Yap, -Unlink Payment on Cancellation of Invoice,Fatura İptaline İlişkin Ödeme süresini kaldır, -Book Asset Depreciation Entry Automatically,Varlık Amortisman Kaydı Otomatik Olarak Kaydedin, +Check Supplier Invoice Number Uniqueness,Benzersiz Tedarikçi Fatura Numarasını Kontrol Edin, +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, -Automatically Fetch Payment Terms,Ödeme Şifrelerini Otomatik Olarak Al, -Show Payment Schedule in Print,Ödeme Programının Baskıda Göster, -Currency Exchange Settings,Döviz Kuru Ayarları, +Automatically Fetch Payment Terms,Ödeme Koşullarını Otomatik Olarak Al, +Show Payment Schedule in Print,Ödeme Programını Baskıda Göster, +Currency Exchange Settings,Döviz Kurları Ayarları, Allow Stale Exchange Rates,Eski Döviz Kurlarına İzin Ver, -Stale Days,Eski Günler, +Stale Days,Bayat günler, Report Settings,Rapor Ayarları, Use Custom Cash Flow Format,Özel Nakit Akışı Biçimini Kullan, -Allowed To Transact With,İle İşlem Yapmaya İzin Verildi, +Allowed To Transact With,İle Taşınmaya İzin Verildi, SWIFT number,SWIFT numarası, Branch Code,Şube Kodu, Address and Contact,Adresler ve Kontaklar, -Address HTML,Adres HTML'si, -Contact HTML,İletişim HTML'si, +Address HTML,Adres HTML, +Contact HTML,İletişim HTML, Data Import Configuration,Veri Alma Yapılandırması, Bank Transaction Mapping,Banka İşlem Haritalaması, Plaid Access Token,Ekose Erişim Simgesi, -Company Account,Şirket Hesabı, -Account Subtype,Hesap Alt Türü, -Is Default Account,Varsayılan Hesap mı, +Company Account,Şirket hesabı, +Account Subtype,Hesap Türü, +Is Default Account,Varsayılan Hesap, Is Company Account,Şirket Hesabı mı, -Party Details,Cari Detayları, +Party Details,Parti Detayları, Account Details,Hesap Detayları, IBAN,IBAN, -Bank Account No,Banka Hesap No, +Bank Account No,Banka hesap numarası, Integration Details,Entegrasyon Detayları, -Integration ID,Entegrasyon ID, +Integration ID,Entegrasyon kimliği, Last Integration Date,Son Entegrasyon Tarihi, -Change this date manually to setup the next synchronization start date,BBir sonraki senkronizasyon başlangıç tarihini ayarlamak için bu tarihi manuel olarak değiştirin., -Mask,Maskele, +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,maskelemek, Bank Account Subtype,Banka Hesabı Alt Türü, Bank Account Type,Banka Hesap Türü, Bank Guarantee,Banka Garantisi, Bank Guarantee Type,Banka Garanti Türü, -Receiving,Alınıyor (mal kabul), +Receiving,kabul, Providing,Sağlama, -Reference Document Name,Referans Döküman Adı, -Validity in Days,Geçerlilik Gün olarak, -Bank Account Info,Banka Hesap Bilgisi, +Reference Document Name,Referans Doküman Adı, +Validity in Days,Gün İçinde Geçerlilik, +Bank Account Info,Banka Hesap Bilgileri, Clauses and Conditions,Şartlar ve Koşullar, -Other Details,Diğer Ayrıntılar, +Other Details,Diğer detaylar, Bank Guarantee Number,Banka Garanti Numarası, Name of Beneficiary,Yararlanıcının Adı, -Margin Money,Marj Para, +Margin Money,Marj Parası, Charges Incurred,Yapılan Ücretler, Fixed Deposit Number,Sabit Mevduat Numarası, Account Currency,Hesabın Döviz Cinsi, -Select the Bank Account to reconcile.,Mutabakata var olacak Banka Hesabını Seçin., +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ınsın, -Payment Entries,Ödeme Girişleri, -Update Clearance Date,Temizleme Tarihini Güncelle, +Get Payment Entries,Ödeme Girişleri alın, +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, Statement Header Mapping,Deyim Üstbilgisi Eşlemesi, Statement Headers,Bildirim Başlıkları, Transaction Data Mapping,İşlem Verileri Eşlemesi, -Mapped Items,Eşleştirilmiş Öğeler, -Bank Statement Settings Item,Banka Ekstrem ayar öğesi, +Mapped Items,Eşlenmiş Öğeler, +Bank Statement Settings Item,Banka ekstresi ayar öğesi, Mapped Header,Eşlenen Üstbilgi, Bank Header,Banka Başlığı, Bank Statement Transaction Entry,Banka ekstresi işlem girişi, Bank Transaction Entries,Banka İşlem Girişleri, New Transactions,Yeni İşlemler, Match Transaction to Invoices,İşlemlerin Faturalara Eşleştirilmesi, -Create New Payment/Journal Entry,Yeni Ödeme / Yevmiye Kaydı Oluştur, +Create New Payment/Journal Entry,Yeni Ödeme Oluştur / Günlük Girişi, Submit/Reconcile Payments,Ödemeleri Gönderme / Mutabakat, Matching Invoices,Eşleşen Faturalar, Payment Invoice Items,Ödeme Faturası Öğeleri, Reconciled Transactions,Mutabık Kılınan İşlemler, -Bank Statement Transaction Invoice Item,Banka Ekstrem İşlem Fatura Öğesi, +Bank Statement Transaction Invoice Item,Banka ekstresi İşlem Fatura Öğesi, Payment Description,Ödeme Açıklaması, Invoice Date,Fatura Tarihi, -invoice,Fatura, +invoice,fatura, Bank Statement Transaction Payment Item,Banka ekstresi işlem ödeme kalemi, outstanding_amount,outstanding_amount, -Payment Reference,Ödeme Referansı, -Bank Statement Transaction Settings Item,Banka ekstresi işlem ayarları özelliği, -Bank Data,Banka Verisi, +Payment Reference,Ödeme referansı, +Bank Statement Transaction Settings Item,Banka ekstresi işlem ayarları öğesi, +Bank Data,Banka Verileri, Mapped Data Type,Eşlenen Veri Türü, Mapped Data,Eşlenmiş Veri, -Bank Transaction,banka işlemi, +Bank Transaction,Banka işlemi, ACC-BTN-.YYYY.-,ACC-BTN-.YYYY.-, Transaction ID,İşlem Kimliği, -Unallocated Amount,Ayrılmamış Tutar, +Unallocated Amount,ayrılmamış Tutar, Field in Bank Transaction,Banka İşlemindeki Alan, -Column in Bank File,Banka Dosyasındaki Sütün, +Column in Bank File,Banka Dosyasındaki Sütun, Bank Transaction Payments,Banka İşlem Ödemeleri, -Control Action,Kontrol İşlemi, +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, +Action if Annual Budget Exceeded on MR,MR üzerinde Yıllık Bütçe Aşıldıysa Eylem, +Warn,Uyarmak, Ignore,Yoksay, -Action if Accumulated Monthly Budget Exceeded on MR,MR Üzerinde Aylık Bütçe Aşıldıysa İşlemleri, -Applicable on Purchase Order,Satınalma Siparişinde Geçerlilik, +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, Action if Annual Budget Exceeded on PO,Yıllık Bütçe Bütçesi Aşıldıysa Eylem, Action if Accumulated Monthly Budget Exceeded on PO,Birikmiş Aylık Bütçe Bütçesi Aşıldıysa Eylem, Applicable on booking actual expenses,Fiili masraflar için geçerlidir, Action if Annual Budget Exceeded on Actual,Yıllık Bütçe Gerçekleşen Durumunda Aşıldıysa Eylem, -Action if Accumulated Monthly Budget Exceeded on Actual,"Gerçekleşen, Aylık Bütçeyi Aşdıysa İşlemleri", +Action if Accumulated Monthly Budget Exceeded on Actual,"Gerçekleşen, Aylık Bütçeyi Aşdıysa Yapılacak İşlem", Budget Accounts,Bütçe Hesapları, Budget Account,Bütçe Hesabı, Budget Amount,Bütçe Miktarı, @@ -4632,107 +4632,107 @@ C-Form No,C-Form No, Received Date,Alınan Tarih, Quarter,Çeyrek, I,ben, -II,III, +II,II, III,III, IV,IV, C-Form Invoice Detail,C-Form Fatura Ayrıntısı, Invoice No,Fatura No, Cash Flow Mapper,Nakit Akışı Eşleştiricisi, -Section Name,Bölüm Adı, -Section Header,Bölüm Başlığı, +Section Name,Bölüm adı, +Section Header,Bölüm başlığı, Section Leader,Bölüm Lideri, -e.g Adjustments for:,örn. Şunun için Ayarlamalar:, +e.g Adjustments for:,örneğin için ayarlamalar:, Section Subtotal,Bölüm Toplamı, Section Footer,Bölüm Altbilgisi, -Position,Pozisyon, +Position,pozisyon, Cash Flow Mapping,Nakit Akışı Eşleme, -Select Maximum Of 1,Maksimum 1'i seçin, +Select Maximum Of 1,Maksimum 1'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öz altı, +Custody,gözaltı, Net Amount,Net Miktar, Cashier Closing Payments,Kasiyer Ödemeleri Kapatma, -Chart of Accounts Importer,Hesap Planı İçe Aktarıcı, -Import Chart of Accounts from a csv file,Bir csv uzantısından Hesap Planını İçe Aktar, +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ı ekleyin, Chart Preview,Grafik Önizlemesi, Chart Tree,Grafik Ağacı, -Cheque Print Template,Çek Baskı Şablonu, +Cheque Print Template,Çek Baskı Şablon, Has Print Format,Baskı Biçimi vardır, -Primary Settings,Primary Ayarları, -Cheque Size,Çek Boyut, +Primary Settings,İlköğretim Ayarlar, +Cheque Size,Çek Boyutu, Regular,Düzenli, 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, +Scanned Cheque,taranan Çek, Is Account Payable,Ödenecek Hesap mı, -Distance from top edge,Üst geçidin uzaklık, -Distance from left edge,Sol üstte olan uzaklık, -Message to show,Mesaj gösteriyor, +Distance from top edge,üst kenarından uzaklık, +Distance from left edge,sol kenarından olan uzaklık, +Message to show,Mesaj göstermek, Date Settings,Tarih Ayarları, -Starting location from left edge,sol üstünün yeri başlıyor, -Payer Settings,Ödeyici Ayarları, -Width of amount in word,Yazıyla tutarın genişliği, -Line spacing for amount in words,sözleriyle yoğunluk için satır aralığı, -Amount In Figure,Miktar (Şekil), -Signatory Position,İmzacı Pozisyonu, -Closed Document,Kapalı Belge, -Track separate Income and Expense for product verticals or divisions.,Ayrı Gelir izlemek ve ürün dikey veya bölüm için Gider., +Starting location from left edge,sol kenarından yerini başlayan, +Payer Settings,ödeyici Ayarları, +Width of amount in word,kelime miktarın Genişliği, +Line spacing for amount in words,sözleriyle miktarı için satır aralığı, +Amount In Figure,Miktar (Figür), +Signatory Position,İmzacı pozisyonu, +Closed Document,Kapalı belge, +Track separate Income and Expense for product verticals or divisions.,Ayrı Gelir izlemek ve ürün dikey veya bölümler için Gider., Cost Center Name,Maliyet Merkezi Adı, Parent Cost Center,Ana Maliyet Merkezi, lft,lft, rgt,rgt, Coupon Code,Kupon Kodu, Coupon Name,Kupon Adı, -"e.g. ""Summer Holiday 2019 Offer 20""",veya. "Yaz Tatili 2019 Teklifi 20", +"e.g. ""Summer Holiday 2019 Offer 20""",ör. "Yaz Tatili 2019 Teklifi 20", Coupon Type,Kupon Türü, -Promotional,tanıtım, -Gift Card,hediye kartı, -unique e.g. SAVE20 To be used to get discount,Örnek örnekleme SAVE20 İndirim almak için kullanmak, -Validity and Usage,Kullanım ve Kullanım, -Valid From,Başlangıç Tarihi, -Valid Upto,Şu tarihe kadar geçerli, +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,Kadar geçerli, +Valid Upto,Şimdiye Kadar Geçerli, Maximum Use,Maksimum kullanım, Used,Kullanılmış, -Coupon Description,Kupon çevirisi, +Coupon Description,Kupon açıklaması, Discounted Invoice,İndirimli Fatura, -Debit to,Şuraya borçlandır, +Debit to,Borç, Exchange Rate Revaluation,Döviz Kuru Yeniden Değerleme, 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 Döviz Bakiyesi, +Balance In Account Currency,Hesap Para Birimi Dengesi, Current Exchange Rate,Mevcut Döviz Kuru, -Balance In Base Currency,Temel Para Birimi Bakiyesi, +Balance In Base Currency,Temel Para Birimi Dengesi, New Exchange Rate,Yeni Döviz Kuru, -New Balance In Base Currency,Temel Dövizde Yeni Bakiye, +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ı, +Year Name,Yıl Adı, "For e.g. 2012, 2012-13","Örneğin 2012 için, 2012-13", Year Start Date,Yıl Başlangıç Tarihi, Year End Date,Yıl Bitiş Tarihi, Companies,Şirketler, -Auto Created,Otomatik Yapılandırıldı, -Stock User,Hisse Senedi Kullanıcısı, +Auto Created,Otomatik Oluşturuldu, +Stock User,Hisse Senedi Kullanıcı, Fiscal Year Company,Mali Yıl Şirketi, Debit Amount,Borç Tutarı, -Credit Amount,Kredi Tutarı, -Debit Amount in Account Currency,Hesap Para Bankamatik Tutarı, +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ış mı, -Is Advance,Avans mı, -To Rename,Yeniden Adlandırılacak, +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ı, @@ -4748,71 +4748,71 @@ 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,Kayıt Türü, -Inter Company Journal Entry,Inter Şirket Yevmiye Kaydı, -Bank Entry,Banka Kaydı, -Cash Entry,Nakit Kaydı, -Credit Card Entry,Kredi Kartı Kaydı, -Contra Entry,Ters Kayıt, -Excise Entry,Tüketim Kaydı, -Write Off Entry,Şüpheli Alacak Kaydı, -Opening Entry,Açılış Kaydı, +Entry Type,Girdi Türü, +Inter Company Journal Entry,Inter Şirket Dergisi Giriş, +Bank Entry,Banka Girişi, +Cash Entry,Nakit Girişi, +Credit Card Entry,Kredi Kartı Girişi, +Contra Entry,Hesaba Alacak Girişi, +Excise Entry,Tüketim Girişi, +Write Off Entry,Şüpheli Alacak Girdisi, +Opening Entry,Açılış Girdisi, ACC-JV-.YYYY.-,ACC-JV-.YYYY.-, -Accounting Entries,Muhasebe Kayıtları, +Accounting Entries,Muhasebe Girişler, Total Debit,Toplam Borç, -Total Credit,Toplam Alacak, +Total Credit,Toplam Kredi, Difference (Dr - Cr),Fark (Dr - Cr), -Make Difference Entry,Fark Kaydı Yao, +Make Difference Entry,Fark Girişi yapın, Total Amount Currency,Toplam Tutar Para Birimi, -Total Amount in Words,Yazıyla Toplam Tutar, +Total Amount in Words,Sözlü Toplam Tutar, Remark,Dikkat, -Paid Loan,Ödenen Kredi, -Inter Company Journal Entry Reference,Şirket içi Yevmiye Kaydı Referansı, -Write Off Based On,Dayalı Borç Sil, -Get Outstanding Invoices,Bekleyen Faturaları Al, -Write Off Amount,Tutarı Sil, +Paid Loan,Ücretli Kredi, +Inter Company Journal Entry Reference,Inter Şirket Dergisi Giriş Referansı, +Write Off Based On,Dayalı Borç Silme, +Get Outstanding Invoices,Bekleyen Faturaları alın, +Write Off Amount,Yazma Miktarı, Printing Settings,Baskı Ayarları, Pay To / Recd From,Gönderen/Alınan, -Payment Order,Ödeme Emri, +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,Cari Bakiyesi, +Party Balance,Parti Dengesi, Accounting Dimensions,Muhasebe Boyutları, If Income or Expense,Gelir veya Gider ise, Exchange Rate,Döviz Kuru, -Debit in Company Currency,Şirket Para Biriminde Borç, -Credit in Company Currency,Şirket Para Biriminde Alacak, +Debit in Company Currency,Şirket Para Birimi Bankamatik, +Credit in Company Currency,Şirket Para Kredi, Payroll Entry,Bordro Girişi, Employee Advance,Çalışan Avansı, Reference Due Date,Referans Sona Erme Tarihi, -Loyalty Program Tier,Sadakat Katmanı Programı, -Redeem Against,Karşı Kullan, -Expiry Date,Son Kullanım Tarihi, -Loyalty Point Entry Redemption,Sadakat Nokta Giriş İtfa, -Redemption Date,Kullanım Tarihi, -Redeemed Points,Kullanılan Puanlar, -Loyalty Program Name,Sadakat Programı Adı, -Loyalty Program Type,Sadakat Programı Türü, -Single Tier Program,Tek Katmanlı Programı, +Loyalty Program Tier,Sadakat Programı Katmanı, +Redeem Against,Karşı Kullanılan, +Expiry Date,Son kullanma tarihi, +Loyalty Point Entry Redemption,Sadakat Nokta Giriş Redemption, +Redemption Date,Kefalet Tarihi, +Redeemed Points,İtfa Edilen Puanlar, +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ölgesi, -Auto Opt In (For all customers),Otomatik Opt In (tüm kullanım için), +Customer Territory,Müşteri bölge, +Auto Opt In (For all customers),Otomatik Opt In (tüm müşteriler için), Collection Tier,Koleksiyon Katmanı, Collection Rules,Koleksiyon Kuralları, -Redemption,Kullanım, +Redemption,ödeme, Conversion Factor,Katsayı, 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, Collection Factor (=1 LP),Toplama Faktörü (= 1 LP), -For how much spent = 1 Loyalty Point,Ne kadar kaldı = 1 Sadakat Noktası, +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.", @@ -4822,154 +4822,154 @@ Name of the Monthly Distribution,Aylık Dağıtım Adı, Monthly Distribution Percentages,Aylık Dağılımı Yüzdeler, Monthly Distribution Percentage,Aylık Dağılımı Yüzde, Percentage Allocation,Yüzde Tahsisi, -Create Missing Party,Eksik Cariyi Oluştur, -Create missing customer or supplier.,Kayıp müşteri veya tedarikçi koruması., -Opening Invoice Creation Tool Item,Fatura Oluşturma Aracı Öğesini Açma, +Create Missing Party,Kayıp Parti Yarat, +Create missing customer or supplier.,Kayıp müşteri veya tedarikçi yaratın., +Opening Invoice Creation Tool Item,Açılış Fatura Oluşturma Aracı Öğe, Temporary Opening Account,Geçici Açılış Hesabı, -Party Account,Cari Hesap, +Party Account,Taraf Hesabı, Type of Payment,Ödeme Türü, ACC-PAY-.YYYY.-,ACC-PAY-.YYYY.-, -Receive,Tahsilat yap, +Receive,Alma, Internal Transfer,İç transfer, Payment Order Status,Ödeme Emri Durumu, Payment Ordered,Ödeme Siparişi, -Payment From / To,Ödeme Giriş/Çıkış Bilgisi, +Payment From / To,From / To Ödeme, Company Bank Account,Şirket Banka Hesabı, -Party Bank Account,Cari Banka Hesabı, -Account Paid From,Ödeme Çıkış Hesabı, -Account Paid To,Ödeme Giriş Hesabı, +Party Bank Account,Parti Bankası Hesabı, +Account Paid From,Hesap şuradan ödenmiş, +Account Paid To,Hesap şuna ödenmiş, Paid Amount (Company Currency),Ödenen Tutar (Şirket Para Biriminde), Received Amount,alınan Tutar, -Received Amount (Company Currency),alınan Tutar (Şirket Para Birimi), -Get Outstanding Invoice,Öden Faturalamamış Alın, +Received Amount (Company Currency),Alınan Tutar (Şirket Para Birimi), +Get Outstanding Invoice,Ödenmemiş Fatura Alın, Payment References,Ödeme Referansları, 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ç Seti / Zarar, +Set Exchange Gain / Loss,Değişim Kazanç Set / Zarar, Difference Amount (Company Currency),Fark Tutarı (Şirket Para Birimi), Write Off Difference Amount,Şüpheli Alacak Fark Hesabı, -Deductions or Loss,Kesintiler veya Zarar, -Payment Deductions or Loss,Ödeme Kesintileri veya Zararı, +Deductions or Loss,Kesintiler veya Zararı, +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ı, Default Payment Request Message,Standart Ödeme Talebi Mesajı, PMO-,PMO-, Payment Order Type,Ödeme Emri Türü, -Payment Order Reference,Ödeme Sipariş Referansı, -Bank Account Details,Banka Hesap Bilgisi, +Payment Order Reference,Ödeme Siparişi Referansı, +Bank Account Details,Banka hesabı detayları, Payment Reconciliation,Ödeme Mutabakat, -Receivable / Payable Account,Alacak / Borç Hesabı, +Receivable / Payable Account,Alacak / Borç Hesap, Bank / Cash Account,Banka / Kasa Hesabı, From Invoice Date,Fatura Tarihinden İtibaren, -To Invoice Date,Bitiş Fatura Tarihi, +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ını alır.", +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,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, -Allocated amount,Tahsis edilen Tutar, +Reference Row,referans Satır, +Allocated amount,Ayrılan miktar, Payment Request Type,Ödeme İsteği Türü, -Outward,Dışa doğru, -Inward,İçe doğru, +Outward,dışa doğru, +Inward,içe doğru, ACC-PRQ-.YYYY.-,ACC-PRQ-.YYYY.-, -Transaction Details,İşlem Detayları, +Transaction Details,ödeme detayları, Amount in customer's currency,Müşterinin para miktarı, Is a Subscription,Bir Abonelik mi, Transaction Currency,İşlem Döviz, Subscription Plans,Abonelik Planları, -SWIFT Number,SWIFT Numarası, -Recipient Message And Payment Details,Alıcı Mesaj Ve Ödeme Ayrıntısı, -Make Sales Invoice,Satış Faturası Oluşturma, +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 Gateway Detayları, -Payment Schedule,Ödeme Planla, +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 sonra kaç gün, -Day(s) after the end of the invoice month,Fatura ayının bitiminden sonra kaç gün, -Month(s) after the end of the invoice month,Fatura ayının bitiminden sonra kaç ay, -Credit Days,Alacak Günü, -Credit Months,Alacak Ayı, -Allocate Payment Based On Payment Terms,Ödeme Hücrelerine 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, kiracıları bölünecek ve her ödeme süresine göre ödeme planındaki tutarlara göre tahsis edilecektir.", -Payment Terms Template Detail,Ödeme Protokolleri Şablon Ayrıntısı, +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şkanı, -"The account head under Liability or Equity, in which Profit/Loss will be booked","Hesap kafası altında Kar / Zarar rezerve sorumluluğu veya Özkaynak,", +"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ı, Only show Items from these Item Groups,Sadece bu Öğe Gruplarındaki Öğeleri göster, Customer Groups,Müşteri Grupları, -Only show Customer of these Customer Groups,Sadece bu Müşteri Gruplarının Müşterisini arayın, +Only show Customer of these Customer Groups,Sadece bu Müşteri Gruplarının Müşterisini gösterin, Write Off Account,Şüpheli Alacaklar Hesabı, Write Off Cost Center,Şüpheli Alacak Maliyet Merkezi, Account for Change Amount,Değişim Miktarı Hesabı, Taxes and Charges,Vergi ve Harçlar, -Apply Discount On,İndirim buna göre Uygula, +Apply Discount On,İndirim On Uygula, POS Profile User,POS Profil Kullanıcıları, -Apply On,Buna Uygula, +Apply On,Uygula, Price or Product Discount,Fiyat veya Ürün İndirimi, -Apply Rule On Item Code,Ürün Koduna Kural Uygula, -Apply Rule On Item Group,Ürün Grubuna Kural Uygula, -Apply Rule On Brand,Markaya Kural Uygula, +Apply Rule On Item Code,Madde Kodunda Kural Uygula, +Apply Rule On Item Group,Öğe Grubuna Kural Uygula, +Apply Rule On Brand,Marka Üzerine Kural Uygula, Mixed Conditions,Karışık Koşullar, -Conditions will be applied on all the selected items combined. ,Seçilen tüm seçeneklere birleştirilmiş yapı uygulanacaktır., -Is Cumulative,Kümülatif / Birikerek artan, +Conditions will be applied on all the selected items combined. ,Seçilen tüm öğelere birleştirilmiş koşullar uygulanacaktır., +Is Cumulative,Birikimli mi, Coupon Code Based,Kupon Koduna Dayalı, Discount on Other Item,Diğer Ürünlerde İndirim, -Apply Rule On Other,Kuralı Diğerlerine Uygula, -Party Information,Cari Bilgisi, -Quantity and Amount,Miktar ve Tutar, -Min Qty,Min Miktar, -Max Qty,Max Miktar, -Min Amt,Min Tutar, -Max Amt,Max Tutar, -Period Settings,Dönem Ayarları, -Margin,Kar Marji, -Margin Type,Kar Türü, -Margin Rate or Amount,Kar Oranı veya Tutarı, +Apply Rule On Other,Diğer Kural Kuralı Uygula, +Party Information,Parti Bilgisi, +Quantity and Amount,Miktar ve Miktar, +Min Qty,Minimum Miktar, +Max Qty,En fazla miktar, +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ı, 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 için, +For Price List,Fiyat Listesi İçin, Product Discount Scheme,Ürün İndirim Şeması, -Same Item,Aynı Ürün, -Free Item,Bedava Ürün, -Threshold for Suggestion,Öneriler için Eşik, -System will notify to increase or decrease quantity or amount ,Sistem miktarını veya miktarını artırma veya azaltma bildirimi, -"Higher the number, higher the priority","Yüksek sayı, yüksek öncelik", +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", Apply Multiple Pricing Rules,Birden Çok Fiyatlandırma Kuralı Uygula, Apply Discount on Rate,Fiyatına İndirim Uygula, Validate Applied Rule,Uygulanan Kuralı Doğrula, Rule Description,Kural Açıklaması, Pricing Rule Help,Fiyatlandırma Kuralı Yardım, Promotional Scheme Id,Promosyon Şeması No, -Promotional Scheme,Tanıtım Şeması, +Promotional Scheme,Promosyon Şeması, Pricing Rule Brand,Fiyatlandırma Kural Markası, Pricing Rule Detail,Fiyatlandırma Kuralı Detayı, -Child Docname,Alt Dokuman Adı, -Rule Applied,Yürüten Kural, +Child Docname,Alt Doküman Adı, +Rule Applied,Uygulanan Kural, Pricing Rule Item Code,Fiyatlandırma Kuralı Ürün Kodu, Pricing Rule Item Group,Fiyatlandırma Kuralı Madde Grubu, Price Discount Slabs,Fiyat İndirim Levhaları, @@ -4978,229 +4978,229 @@ Product Discount Slabs,Ürün İndirimli Döşeme, Promotional Scheme Product Discount,Promosyon Programı Ürün İndirimi, 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,İşlem Tarihi ve Saatini Düzenle, -Is Paid,Ücretli/Ödendi mi, -Is Return (Debit Note),Iade mi (Borç dekontu), +Edit Posting Date and Time,Düzenleme Gönderme Tarihi ve Saati, +Is Paid,Ücretli mi, +Is Return (Debit Note),Iade (banka notu), Apply Tax Withholding Amount,Vergi Stopaj Tutarını Uygula, Accounting Dimensions ,Muhasebe Boyutları, Supplier Invoice Details,Tedarikçi Fatura Ayrıntıları, Supplier Invoice Date,Tedarikçi Fatura Tarihi, Return Against Purchase Invoice,Karşı Satınalma Fatura Dönüş, -Select Supplier Address,Tedarikçi Adresi Seç, +Select Supplier Address,Seç Tedarikçi Adresi, Contact Person,İrtibat Kişi, -Select Shipping Address,Teslimat Adresi Seç, -Currency and Price List,Fiyat Listesi ve Para Birimi, +Select Shipping Address,Seç Teslimat Adresi, +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,Kabül edilen Depoyu Ayarla, +Set Accepted Warehouse,Kabul Edilen Depoyu Ayarla, Rejected Warehouse,Reddedilen Depo, -Warehouse where you are maintaining stock of rejected items,Reddetilen Ürün stoklarını muhafaza ettiği depo, +Warehouse where you are maintaining stock of rejected items,Reddedilen Ürün stoklarını muhafaza ettiğiniz depo, Raw Materials Supplied,Tedarik edilen Hammaddeler, Supplier Warehouse,Tedarikçi Deposu, Pricing Rules,Fiyatlandırma Kuralları, Supplied Items,Verilen Öğeler, -Total (Company Currency),Toplam (Şirket Dövizi), -Net Total (Company Currency),Net Toplam (Şirket Dövizi), -Total Net Weight,Toplam Net Ağırlık, -Shipping Rule,Nakliye Kuralı, -Purchase Taxes and Charges Template,Alış Vergisi ve Harçlar Şablonu, -Purchase Taxes and Charges,Alış Vergisi ve Harçları, -Tax Breakup,Vergi Kırılımı, +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,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,Vergiler ve Ücretleri Hesaplama, Taxes and Charges Added (Company Currency),Eklenen Vergi ve Harçlar (Şirket Para Birimi), -Taxes and Charges Deducted (Company Currency),Düşülen Vergi ve Harçlar (Şirket Para Biriminde), +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,Düşülen 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, +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 (Şirket para birimi), +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),Yazıyla (Firma para birimi) olarak, +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,Yuvarlanmış 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 Miktarı (Şirketin Kurunda), Set Advances and Allocate (FIFO),Avansları ve Tahsisleri Ayarla (FIFO), -Get Advances Paid,Avans Ödemesini Getir, +Get Advances Paid,Avansları Öde, Advances,Avanslar, -Terms,Vade ve Şartlar, +Terms,Şartlar, Terms and Conditions1,Şartlar ve Koşullar 1, -Group same items,Aynı Ögeleri Grupla, -Print Language,Baskı Dili, -"Once set, this invoice will be on hold till the set date","Ayarlandıktan sonra, bu fatura yazılan tarihe kadar beklemeye alınır.", -Credit To,Alacak Yeri, -Party Account Currency,Cari Hesabı Dövizi, +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,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 dönem faturanın Başlangıç tarihi, -End date of current invoice's period,Cari dönem faturanın bitiş tarihi, +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ı Avansı, -Purchase Invoice Item,Satınalma Faturası Ürünleri, +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, -UOM Conversion Factor,Birim Dönüşüm Katsayısı, -Discount on Price List Rate (%),Fiyat Listesi Puan İndirimi (%), -Price List Rate (Company Currency),Fiyat Listesi Oranı (Şirket Para Birimi), -Rate ,Birim Fiyat , -Rate (Company Currency),Oranı (Şirket Para Birimi), +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ı (Şirket para birimi), +Rate ,Birim Fiyat, +Rate (Company Currency),Oranı (Şirket para birimi), Amount (Company Currency),Tutar (Şirket Para Birimi), -Is Free Item,Bedava Ürün mü, -Net Rate,Net Oran, -Net Rate (Company Currency),Net Oranı (Şirket Para Birimi), -Net Amount (Company Currency),Net 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 Fiş Tutarı, -Raw Materials Supplied Cost,Tedarik edilen Hammadde Maliyeti, -Accepted Warehouse,Kabul edilen Depo, +Landed Cost Voucher Amount,Bindirilmiş Maliyet Tutarı, +Raw Materials Supplied Cost,Tedarik edilen Hammadde Maliyeti, +Accepted Warehouse,Kabul edilen depo, Serial No,Seri No, Rejected Serial No,Seri No Reddedildi, Expense Head,Gider Başlığı, -Is Fixed Asset,Sabit Kıymet mi, -Asset Location,Varlık Konumu, +Is Fixed Asset,Sabit Varlık, +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ştirin, +Enable Deferred Expense,Ertelenmiş Gider'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 İzin ver, +Allow Zero Valuation Rate,Sıfır Değerleme Oranına izin ver, Item Tax Rate,Ürün Vergi Oranı, -Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges,Bir dizi olarak madde ustasından getirilen ve bu alanda depolanan vergi detay tablosu.\n Vergi ve Ücretleri için kullanılır, +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,Öğe Ağırlık Ayrıntıları, -Weight Per Unit,Birim Ağırlık, -Total Weight,Toplam Ağırlık, +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, 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, -On Previous Row Amount,Önceki Satır Tutarı, -On Previous Row Total,Önceki Satır Toplamı, +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,Öğ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 yükün hali hazırda Basım Oranında/Basım Miktarında dahil olduğu düşünülecektir", +"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", Account Head,Hesap Başlığı, Tax Amount After Discount Amount,İndirim Tutarından sonraki vergi miktarı, Item Wise Tax Detail ,Öğe Bilge Vergi Ayrıntısı, -"Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense 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. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.\n10. Add or Deduct: Whether you want to add or deduct the tax.","Tüm Satınalma İşlemleri uygulanabilir standart vergi şablonu. Bu şablon burada tablolar \n\n vergi oranı Not #### \n\n vb ""Handling"", vergi başkanları ve ""Denizcilik"", ""Sigorta"" gibi diğer gider başkanlıklarının listesinin izlediği ** Tüm ** Öğeler için standart vergi oranı olacaktır. Farklı fiyat bilgisi ** ** Ürünleri varsa, bunlar ** Ürün Vergisinde özendirilmelidir ** ** ** Ürün ana tablosu.\n\n #### Kolonların \n\n 1 Açıklaması. Hesaplama Türü: \n - Bu üzerinde olabilir ** Net (yani temel miktarn toplamı) ** Toplam.\n - ** Önceki Satır Toplam / Tutar ** Açık (kümülatif vergi ya da harç için). Bu seçeneği ayarlarsanız, vergi miktarı veya toplam (vergi tablosunda) önceki bilgilerde bir yüzdesi olarak uygulanacaktır.\n - ** ** Gerçek (belirtildiği gibi).\n 2. Hesap Başkanı: Bu vergi \n 3 rezerve harcamaları Hesap defteri altında. Maliyet Merkezi: Vergi / şarj (nakliye gibi) bir gelir veya gider ise bir Maliyet Merkezinin ödenmesi 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 indirme Toplu toplam.\n 8. Enter Satır: ""Önceki Satır Toplam"" esaslı Eğer bu hesaplama için bir üs (varsayılan bir önceki satır olduğu) olarak alınması satır sayısını alır. \n 9. İçin Vergi veya şarj düşünün: Vergi / şarj değerlemesi için sadece (toplam bir parçası) veya (öğeye değer katmıyor sadece) toplam veya her ikisi için bu sonucu belirtebilirsiniz.\n 10. Ekle veya Düşebilme: dahil veya vergi kesintisi yapmak isteyin.", +"Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense 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. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.\n10. Add or Deduct: Whether you want to add or deduct the tax.","Tüm Satınalma İşlemleri uygulanabilir standart vergi şablonu. Bu şablon burada tanımlamak \n\n vergi oranı Not #### \n\n vb ""Handling"", vergi başkanları ve ""Denizcilik"", ""Sigorta"" gibi diğer gider başkanlarının listesini içerebilir ** Tüm ** Öğeler için standart vergi oranı olacaktır. 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. Için Vergi veya şarj düşünün: Vergi / şarj değerlemesi için sadece (toplam bir parçası) veya sadece (öğeye değer katmıyor) toplam veya her ikisi için bu bölümde belirtebilirsiniz.\n 10. Ekle veya Düşebilme: eklemek veya vergi kesintisi etmek isteyin.", Salary Component Account,Maaş Bileşen Hesabı, -Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected.,Bu mod seçildiğinde varsayılan Banka / Kasa hesabı otomatik Maaş Dergisi'ne girecektir., +Default Bank / Cash account will be automatically updated in Salary Journal Entry when this mode is selected.,Bu mod seçildiğinde varsayılan Banka / Kasa hesabı otomatik Maaş Dergisi girdisi güncellenecektir., ACC-SINV-.YYYY.-,ACC-SINV-.YYYY.-, Include Payment (POS),Ödeme Dahil (POS), Offline POS Name,Çevrimdışı POS Adı, -Is Return (Credit Note),İade mi (Alacak Dekontu), -Return Against Sales Invoice,Satış Faturası Karşılığında İade, -Update Billed Amount in Sales Order,Satış Sipariş Faturasındaki Tutarını Güncelle, -Customer PO Details,Müşteri Satınalma Siparişi Ayrıntıları, -Customer's Purchase Order,Müşterinin Satınalma Siparişi, -Customer's Purchase Order Date,Müşterinin Satınalma Sipariş Tarihi, +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 Sipariş, +Customer's Purchase Order Date,Müşterinin Sipariş Tarihi, Customer Address,Müşteri Adresi, 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ürme oranı, -Rate at which Price list currency is converted to customer's base currency,Fiyat listesi para biriminin temel verileri para birimine dönüştürme oranı, -Set Source Warehouse,Kaynak Deposu Ayarla, -Packing List,Paket Listesi, +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,Ü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çlar Şablonu, -Sales Taxes and Charges,Satış Vergisi ve Harçlar, -Loyalty Points Redemption,Sadakat Puanı Kullanımı, -Redeem Loyalty Points,Sadakat Puanı Kullan, -Redemption Account,Kullanım Hesabı, -Redemption Cost Center,Kullanım Maliyet Merkezi, -In Words will be visible once you save the Sales Invoice.,Satış faturasını saklayacağınızda görünür olacaktır., -Allocate Advances Automatically (FIFO),Avansları Otomatik Olarak Tahsis et (FIFO), -Get Advances Received,Alınan Avansları Getir, +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 Dolan Şüpheli Alacak Miktarı, -Terms and Conditions Details,Şartlar ve Koşullar Detayı, +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 mi, +Is Discounted,İndirimli, 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ı, -Qty as per Stock UOM,Stok Birimi için Miktar, +Qty as per Stock UOM,Her Stok Ölçü Birimi (birim) için miktar, Discount and Margin,İndirim ve Kar, -Rate With Margin,Marjlı Oran, +Rate With Margin,Marjla Oran, Discount (%) on Price List Rate with Margin,Fiyat Listesindeki İndirim (%) Marjlı Oran, Rate With Margin (Company Currency),Marjla Oran (Şirket Para Birimi), -Delivered By Supplier,Tedarikçi Tarafından Teslim Edildi, +Delivered By Supplier,Tedarikçi Tarafından Teslim, Deferred Revenue,Ertelenmiş Gelir, Deferred Revenue Account,Ertelenmiş Gelir Hesabı, Enable Deferred Revenue,Ertelenmiş Geliri Etkinleştir, Stock Details,Stok Detayları, -Customer Warehouse (Optional),Müşteri Deposu (İsteğe bağlı), +Customer Warehouse (Optional),Müşteri Depo (İsteğe bağlı), Available Batch Qty at Warehouse,Depodaki Mevcut Parti Miktarı, Available Qty at Warehouse,Depodaki mevcut miktar, Delivery Note Item,İrsaliye Ürünleri, Base Amount (Company Currency),Esas Tutar (Şirket Para Birimi), Sales Invoice Timesheet,Satış Faturası Çizelgesi, Time Sheet,Mesai Kartı, -Billing Hours,Saatleri Faturalandırma, -Timesheet Detail,Zaman 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 bazında Vergi Detayları, -Parenttype,Ana İpucu, -"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 başvurusu size Not #### \n\n vb ""Handling"", vergi başkanları ve ""Denizcilik"", ""Sigorta"" gibi diğer gider / gelir başkanları listesinin izlediği ** Tüm ** Öğeler için standart vergi oranı burada tanımlayın. Farklı fiyat bilgisi ** ** Ürünleri varsa, bunlar ** Ürün Vergisinde özendirilmelidir ** ** ** Ürün ana tablosu.\n\n #### Kolonların \n\n 1 Açıklaması. Hesaplama Türü: \n - Bu üzerinde olabilir ** Net (yani temel miktarn toplamı) ** Toplam.\n - ** Önceki Satır Toplam / Tutar ** Açık (kümülatif vergi ya da harç için). Bu seçeneği ayarlarsanız, vergi miktarı veya toplam (vergi tablosunda) önceki bilgilerde bir yüzdesi olarak uygulanacaktır.\n - ** ** Gerçek (belirtildiği gibi).\n 2. Hesap Başkanı: Bu vergi \n 3 rezerve harcamaları Hesap defteri altında. Maliyet Merkezi: Vergi / şarj (nakliye gibi) bir gelir veya gider ise bir Maliyet Merkezinin ödenmesi 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 indirme Toplu toplam.\n 8. Enter Satır: ""Önceki Satır Toplam"" esaslı Eğer bu hesaplama için bir üs (varsayılan bir önceki satır olduğu) olarak alınması satır sayısını alır. \n 9. Temel Puan dahil bu vergi ?: size bu işaretlerseniz, bu vergi kalemi aşağıdaki tabloda gösterilmeyecek, ama ana öğe tablosu Temel Oranı dahil olacağını anlama gelir. Eğer bileşenleri düz (tüm vergiler dahil) fiyat vermek istiyorsanız kullanışlı.", +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ş. Numarası, -To No,Bitiş Numarası, -Is Company,Şirket mi, -Current State,Mevcut Durum, -Purchased,Satın alındı, +From No,Hayır'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,Folyo No'dan, -To Shareholder,Hissedar Bitişi, -To Folio No,Bitiş Folyo Numarası, +From Folio No,Folio No'dan, +To Shareholder,Hissedarya, +To Folio No,Folio No'ya, Equity/Liability Account,Özkaynak / Sorumluluk Hesabı, Asset Account,Öğe Hesabı, (including),(dahildir), ACC-SH-.YYYY.-,ACC-SH-.YYYY.-, -Folio no.,Folyo serisi., +Folio no.,Folyo numarası., Address and Contacts,Adres ve Kişiler, -Contact List,Kişi Listesi, -Hidden list maintaining the list of contacts linked to Shareholder,Hissedar ile bağlantılı alıcıları koruyan gizli liste, -Specify conditions to calculate shipping amount,Nakliye masraflarını karşılamak için koşullar, +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 Hesabı, -Calculate Based On,Şuna Göre Hesapla, +Shipping Account,Nakliye Hesap, +Calculate Based On,Tabanlı hesaplayın, Fixed,Sabit, Net Weight,Net Ağırlık, Shipping Amount,Kargo Tutarı, @@ -5208,9 +5208,9 @@ Shipping Rule Conditions,Kargo Kural Koşulları, Restrict to Countries,Ülkelere Kısıtla, Valid for Countries,Ülkeler için geçerli, Shipping Rule Condition,Kargo Kural Şartları, -A condition for a Shipping Rule,Nakliye Kuralı için şart, -From Value,Baş. Değeri, -To Value,Bitiş Değeri, +A condition for a Shipping Rule,Nakliye Kuralı için koşul, +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, @@ -5219,8 +5219,8 @@ Trial Period Start Date,Deneme Süresi Başlangıç Tarihi, Trial Period End Date,Deneme Süresi Bitiş Tarihi, Current Invoice Start Date,Mevcut Fatura Başlangıç Tarihi, Current Invoice End Date,Mevcut Fatura Bitiş Tarihi, -Days Until Due,Bitişine Kalan Gün Sayısı, -Number of days that the subscriber has to pay invoices generated by this subscription,Abonenin bu abonelik tarafından faturalarının kesilmesi zorunlu olduğu gün miktarı, +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, Generate Invoice At Beginning Of Period,Dönem Başında Fatura Yaratın, Plans,Planlar, @@ -5232,27 +5232,27 @@ Subscription Plan,Abonelik Planı, 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ı, örnek 'Günler' ve Faturalama Aralığı 3 ise, faturalar her 3 günde bir oluşturur.", -Payment Plan,Ödeme tesisi, +"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.", +Payment Plan,Ödeme planı, Subscription Plan Detail,Abonelik Planı Ayrıntısı, Plan,Plan, -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 faturadan önce faturanın bitiminden sonraki gün sayısı geçmiştir., +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ğıtmak, Tax Rule,Vergi Kuralı, Tax Type,Vergi Türü, -Use for Shopping Cart,Alışveriş Sepeti kullanımı, +Use for Shopping Cart,Alışveriş Sepeti kullanın, Billing City,Fatura Şehri, Billing County,Fatura İlçesi, -Billing State,Fatura İlçesi/Eyaleti, -Billing Zipcode,Fatura Posta kodu, +Billing State,Fatura Kamu, +Billing Zipcode,Fatura posta kodu, Billing Country,Fatura Ülkesi, -Shipping City,Sevkiyat Şehri, -Shipping County,Sevkiyat İlçe, -Shipping State,Sevkiyat Devleti, -Shipping Zipcode,Sevkiyat kodu, -Shipping Country,Sevkiyat Ülkesi, +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, @@ -5260,69 +5260,69 @@ Tax Withholding Rate,Vergi Stopaj Oranı, Single Transaction Threshold,Tek İşlem Eşiği, Cumulative Transaction Threshold,Kümülatif İşlem Eşiği, Agriculture Analysis Criteria,Tarımsal Analiz Kriterleri, -Linked Doctype,Bağlı Doküman, +Linked Doctype,Bağlı Doctype, Water Analysis,Su Analizi, Soil Analysis,Toprak Analizi, Plant Analysis,Bitki Analizi, Fertilizer,Gübre, -Soil Texture,Toprak Dokusu, +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ü, -End Day,Gün Sonu, +End Day,Gün sonu, Holiday Management,Tatil Yönetimi, Ignore holidays,Tatilleri göz ardı et, Previous Business Day,Önceki İş Günü, -Next Business Day,Bir sonraki iş gününde, +Next Business Day,Bir sonraki iş günü, Urgent,Acil, -Crop,Mahsul, -Crop Name,Mahsul 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 dikkat için kullanılır.", +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.", 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ü, -Biennial,İki yıllık, -Planting UOM,Dikim Birimi, +Perennial,uzun ömürlü, +Biennial,iki yıllık, +Planting UOM,Dikim UOM, Planting Area,Dikim Alanı, -Yield UOM,Verim ölçü birimi, -Materials Required,gerekli özellikler, +Yield UOM,Verim UOM, +Materials Required,Gerekli malzemeler, Produced Items,Üretilen Ürünler, -Produce,Üret, +Produce,Üretmek, Byproducts,Yan ürünler, -Linked Location,Bağlı Konum, +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, sarfiyatı 1. kademeleri", +This will be day 1 of the crop cycle,"Bu, mahsul döngüsü 1. gündür", ISO 8601 standard,ISO 8601 standardı, Cycle Type,Döngü Türü, -Less than a year,Bir koleksiyonu daha az, -The minimum length between each plant in the field for optimum growth,Optimal büyüme için tarladaki her bitki arasındaki minimum uzunluklar, +Less than a year,Bir yıldan daha az, +The minimum length between each plant in the field for optimum growth,Optimal büyüme için tarladaki her bitki arasındaki minimum uzunluk, The minimum distance between rows of plants for optimum growth,Optimum büyüme için bitki sıraları arasındaki minimum mesafe, Detected Diseases,Algılanan Hastalıklar, -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 liste. Seçildiğinde, hastalıkla başa çıkmak için programların bir listesine otomatik olarak eklenir.", +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 Adı, +Common Name,Yaygın isim, Treatment Task,Tedavi Görevi, Treatment Period,Tedavi Süresi, Fertilizer Name,Gübre Adı, Density (if liquid),Yoğunluk (sıvı varsa), Fertilizer Contents,Gübre İçeriği, -Fertilizer Content,Gübre İçeriği, +Fertilizer Content,Gübre İçerik, Linked Plant Analysis,Bağlı Bitki Analizi, Linked Soil Analysis,Bağlı Toprak Analizi, Linked Soil Texture,Bağlı Toprak Doku, Collection Datetime,Koleksiyon Datetime, Laboratory Testing Datetime,Laboratuvar Testi Datetime, Result Datetime,Sonuç Sonrası Tarih, -Plant Analysis Criterias,Bitki Analiz Kriterleri, +Plant Analysis Criterias,Bitki Analizi Kriterleri, Plant Analysis Criteria,Bitki Analiz Kriterleri, Minimum Permissible Value,Minimum İzin Verilebilir Değer, Maximum Permissible Value,Maksimum İzin Verilebilir Değer, @@ -5330,57 +5330,57 @@ Ca/K,Ca / K, Ca/Mg,Ca / Mg, Mg/K,Mg / K, (Ca+Mg)/K,(Ca+Mg)/K, -Ca/(K+Ca+Mg),"Ca / (K+, Ca+Mg)", +Ca/(K+Ca+Mg),"Ca / (K +, Ca + Mg)", Soil Analysis Criterias,Toprak Analiz Kriterleri, Soil Analysis Criteria,Toprak Analiz Kriterleri, -Soil Type,Toprak Tipi, -Loamy Sand,Ödünç Kum, -Sandy Loam,Kumlu Tın, -Loam,Verimli toprak, -Silt Loam,Alüvyon kumu, +Soil Type,Toprak tipi, +Loamy Sand,Loanty Sand, +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,Siltli Kil Tın, +Silty Clay Loam,Silty Clay Loam, Sandy Clay,Kumlu kil, -Silty Clay,Siltli Kil, +Silty Clay,Silty Clay, Clay Composition (%),Kil Kompozisyonu (%), Sand Composition (%),Kum Bileşimi (%), -Silt Composition (%),Silt Kompozisyon (%), +Silt Composition (%),Silt Kompozisyonu (%), Ternary Plot,Üç parsel, Soil Texture Criteria,Toprak Doku Kriterleri, Type of Sample,Numune Türü, -Container,Konteyner, +Container,konteyner, Origin,Menşei, -Collection Temperature ,Toplam Sıcaklık, -Storage Temperature,Depolama Sıcaklığı, +Collection Temperature ,Toplama Sıcaklığı, +Storage Temperature,Depolama sıcaklığı, Appearance,Görünüm, -Person Responsible,Sorumlu Kişi, +Person Responsible,Sorumlu kişi, Water Analysis Criteria,Su Analiz Kriterleri, Weather Parameter,Hava Durumu Parametresi, ACC-ASS-.YYYY.-,ACC-ASS-.YYYY.-, Asset Owner,Varlık Sahibi, Asset Owner Company,Varlık Sahibi Firma, -Custodian,Bekçi, -Disposal Date,Bertaraf Tarihi, -Journal Entry for Scrap,Hurda için Yevmiye Kaydı, +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, Calculate Depreciation,Amortisman Hesapla, Allow Monthly Depreciation,Aylık Amortismana İzin Ver, -Number of Depreciations Booked,Amortisman miktarı tayini, -Finance Books,Mali Defter, +Number of Depreciations Booked,Amortismanlar sayısı rezervasyonu, +Finance Books,Finans Kitapları, Straight Line,Düz Çizgi, Double Declining Balance,Çift Azalan Bakiye, Manual,Manuel, Value After Depreciation,Amortisman sonra değer, -Total Number of Depreciations,Amortisman Sayısı, +Total Number of Depreciations,Amortismanlar Sayısı, Frequency of Depreciation (Months),Amortisman Frekans (Ay), Next Depreciation Date,Bir sonraki değer kaybı tarihi, Depreciation Schedule,Amortisman Programı, Depreciation Schedules,Amortisman Çizelgeleri, -Insurance details,Sigorta detayları, +Insurance details,Sigorta ayrıntıları, Policy number,Poliçe numarası, Insurer,sigortacı, -Insured value,Sigortalanmış değer, +Insured value,Sigortalanmış değeri, Insurance Start Date,Sigorta Başlangıç Tarihi, Insurance End Date,Sigorta Bitiş Tarihi, Comprehensive Insurance,Kapsamlı Sigorta, @@ -5388,26 +5388,26 @@ Maintenance Required,Bakım gerekli, Check if Asset requires Preventive Maintenance or Calibration,Varlık Önleyici Bakım veya Kalibrasyon gerektirir kontrol edin, Booked Fixed Asset,Rezerve Edilmiş Duran Varlık, Purchase Receipt Amount,Satınalma Tutarı Tutarı, -Default Finance Book,Varsayılan Mali Defter, -Quality Manager,Kalite Yöneticisi, +Default Finance Book,Varsayılan Finans Kitabı, +Quality Manager,Kalite Müdürü, Asset Category Name,Varlık Kategorisi, Depreciation Options,Amortisman Seçenekleri, -Enable Capital Work in Progress Accounting,Yarı Mamül Muhasebesini Etkinleştirin, -Finance Book Detail,Mali Defter Detayı, +Enable Capital Work in Progress Accounting,Devam Eden Muhasebede Sermaye Çalışmasını Etkinleştir, +Finance Book Detail,Finans Kitap Detayı, Asset Category Account,Varlık Tipi Hesabı, -Fixed Asset Account,Sabit Kıymet Hesabı, +Fixed Asset Account,Sabit Varlık Hesabı, Accumulated Depreciation Account,Birikmiş Amortisman Hesabı, Depreciation Expense Account,Amortisman Giderleri Hesabı, -Capital Work In Progress Account,Sermaye Yarı Mamül Hesabı, -Asset Finance Book,Varlık Mali Defteri, +Capital Work In Progress Account,İlerleme Hesabında Sermaye Çalışması, +Asset Finance Book,Varlık Finans Kitabı, Written Down Value,Yazılı Değer, 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, +In Percentage,Yüzde olarak, +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ü, @@ -5419,7 +5419,7 @@ 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,ayarlamak, +Calibration,ayarlama, 2 Yearly,2 Yıllık, Certificate Required,Sertifika Gerekli, Assign to Name,İsme Ata, @@ -5429,12 +5429,12 @@ Asset Maintenance Team,Varlık Bakım Ekibi, 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,çalışanlardan, -Target Location,hedef konum, -To Employee,çalışanlara, +From Employee,Çalışanlardan, +Target Location,Hedef konum, +To Employee,Çalışanlara, Asset Repair,Varlık Tamiri, ACC-ASR-.YYYY.-,ACC-ASR-.YYYY.-, Failure Date,Başarısızlık Tarihi, @@ -5443,72 +5443,72 @@ Repair Status,Onarım Durumu, 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, -Finance Book Id,Mali Defter Kimliği, +Finance Book Id,Finans Defteri Kimliği, Location Name,Yer ismi, Parent Location,Ana Konum, Is Container,Konteyner mu, -Check if it is a hydroponic unit,Hidroponik bir ünite olup olmadığını kontrol edin, +Check if it is a hydroponic unit,Hidroponik bir birim olup olmadığını kontrol edin, Location Details,Konum Detayları, Latitude,Enlem, -Longitude,boylam, +Longitude,Boylam, Area,alan, 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ü, Buying Settings,Satınalma Ayarları, -Settings for Buying Module,Modülü satınalmak için Ayarlar, -Supplier Naming By,Tedarikçi Adlandırma, +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,Taşeronluk Hammadde Maliyetini Şuna göre yap, -Material Transferred for Subcontract,Taşeron için Transfer Edilen Malzeme, +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 verilecektir.", +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.", PUR-ORD-.YYYY.-,PUR-ORD-.YYYY.-, -Get Items from Open Material Requests,Açık Malzeme Talepleri Öğeleri Alındı, -Fetch items based on Default Supplier.,Varsayılan tedarikçiye göre öğeleri getirin., +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., Required By,Gerekli, -Order Confirmation No,Sipariş Onay No, +Order Confirmation No,Sipariş Onayı No, Order Confirmation Date,Sipariş Onay Tarihi, -Customer Mobile No,Müşteri Mobil No, -Customer Contact Email,Müşteri İletişim E-posta, +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 tablosunda 'Depo' ayarlar., +Sets 'Warehouse' in each row of the Items table.,Kalemler tablosunun her satırında 'Depo' 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.,Alış Siparişini kaydettiğinizde Yazıyla görünür olacaktır., -Advance Paid,Ödenen Avans, -Tracking,Takip etme, -% Billed,% Faturalandı, +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,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 Parça Numarası, +Inter Company Order Reference,Şirketler Arası Sipariş Referansı, +Supplier Part Number,Tedarikçi Parti Numarası, 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şı, -Blanket Order,Açık Sipariş, -Blanket Order Rate,Açık Sipariş Oranı, +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ü, +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 Adet, -Purchase Receipt Item Supplied,Tedarik edilen satınalma makbuzu ü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 için, +For individual supplier,Bireysel tedarikçi, Link to Material Requests,Malzeme Taleplerine Bağlantı, Message for Supplier,Tedarikçi için mesaj, Request for Quotation Item,Fiyat Teklif Talebi Kalemi, @@ -5517,96 +5517,96 @@ Request for Quotation Supplier,Fiyat Teklif Talebi Tedarikçisi, Send Email,E-posta Gönder, Quote Status,Alıntı Durumu, Download PDF,PDF İndir, -Supplier of Goods or Services.,Mal veya Hizmet Sağlayıcısı., +Supplier of Goods or Services.,Mal veya Hizmet alanı., Name and Type,Adı ve Türü, SUP-.YYYY.-,SUP-.YYYY.-, Default Bank Account,Varsayılan Banka Hesabı, -Is Transporter,Nakliyeci mi, -Represents Company,Şirketi Temsil eder, +Is Transporter,Taşıyıcı, +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 İzin Ver, -Allow Purchase Invoice Creation Without Purchase Receipt,Satınalma İrsaliye olmadan Satınalma Faturası Oluşturmaya İzin Ver, -Warn RFQs,RFQ'ları Uyar, +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'ları uyar, Warn POs,Dikkatli Uyarılar Uyar, -Prevent RFQs,RFQ'ları Önle, -Prevent POs,PO'ları Önle, +Prevent RFQs,RFQ'ları önle, +Prevent POs,PO'ları önle, Billing Currency,Fatura Para Birimi, -Default Payment Terms Template,Varsayılan Ödeme Vadesi Şablonu, -Block Supplier,Tedarikçiyi Engelle, +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ırakma, +Leave blank if the Supplier is blocked indefinitely,Tedarikçi süresiz olarak engellendiyse boş bırak, Default Payable Accounts,Standart Borç Hesapları, -Mention if non-standard payable account,Standart dışı borç hesabı varsa belirtin, -Default Tax Withholding Config,Varsayılan Vergi Durdurma Yapılandırması, +Mention if non-standard payable account,Standart dışı borç hesabı ise, +Default Tax Withholding Config,Varsayılan Vergi Stopaj Yapılandırması, Supplier Details,Tedarikçi Ayrıntıları, Statutory info and other general information about your Supplier,Tedarikçiniz hakkında yasal bilgiler ve diğer genel bilgiler, PUR-SQTN-.YYYY.-,PUR-SQTN-.YYYY.-, Supplier Address,Tedarikçi Adresi, -Link to material requests,Malzeme taleplerine bağlantı, +Link to material requests,materyal isteklere Bağlantı, Rounding Adjustment (Company Currency,Yuvarlama Ayarı (Şirket Kuru, Auto Repeat Section,Otomatik Tekrar Bölümü, -Is Subcontracted,Taşerona verildi, -Lead Time in days,Teslim Süresi gün olarak, +Is Subcontracted,Taşerona verilmiş, +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, Per Week,Haftada, -Per Month,onun ay, +Per Month,Her ay, Per Year,Yıl başına, Scoring Setup,Puanlama Ayarları, Weighting Function,Ağırlıklandırma İşlevi, -"Scorecard variables can be used, as well as:\n{total_score} (the total score from that period),\n{period_number} (the number of periods to present day)\n","Puan kartı değişkenleri yanı sıra: {total_score} (o dönem toplam puanı), {period_number} (mevcut gün genel sayısı)", +"Scorecard variables can be used, as well as:\n{total_score} (the total score from that period),\n{period_number} (the number of periods to present day)\n","Puan kartı değişkenleri yanı sıra: {total_score} (o dönemin toplam puanı), {period_number} (mevcut gün sayısının sayısı)", Scoring Standings,Puanlama Puanları, Criteria Setup,Ölçütler Kurulumu, -Load All Criteria,Tüm Ölçüleri Yükle, +Load All Criteria,Tüm Ölçütleri Yükle, Scoring Criteria,Puanlama Kriterleri, Scorecard Actions,Kart Kartı İşlemleri, -Warn for new Request for Quotations,Teklifler için yeni istek uyarısı yapın, -Warn for new Purchase Orders,Yeni Satınalma Siparişi için Uyarı, -Notify Supplier,tedarikçiye bildir, -Notify Employee,çalışana bildir, +Warn for new Request for Quotations,Teklifler için yeni İstek uyarısı yapın, +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, Criteria Name,Ölçütler Adı, Max Score,Maksimum Skor, -Criteria Formula,Kriterler Formülü, +Criteria Formula,Kriterler Formül, Criteria Weight,Ölçütler Ağırlık, -Supplier Scorecard Period,tedarikçisi Puan Kartı Dönemi, +Supplier Scorecard Period,Tedarikçi Puan Kartı Dönemi, PU-SSP-.YYYY.-,PU-SSP-.YYYY.-, Period Score,Dönem Notu, Calculations,Hesaplamalar, Criteria,Kriterler, -Variables,değişkenler, -Supplier Scorecard Setup,tedarikçisi Puan Kartı Kurulumu, +Variables,Değişkenler, +Supplier Scorecard Setup,Tedarikçi Puan Kartı Kurulumu, Supplier Scorecard Scoring Criteria,Tedarikçi Puan Kartı Puanlama Kriterleri, Score,Gol, -Supplier Scorecard Scoring Standing,tedarikçi Puan Kartı Puanlama, +Supplier Scorecard Scoring Standing,Tedarikçi Puan Kartı Puanlama, Standing Name,Daimi Adı, -Purple,mor, -Yellow,sari, +Purple,Mor, +Yellow,sarı, Orange,Portakal, -Min Grade,Asgari Not, +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 ,Çalışan, -Supplier Scorecard Scoring Variable,tedarikçisi Puan Kartı değişken Skorlama, -Variable Name,işletim Adı, +Supplier Scorecard Scoring Variable,Tedarikçi Puan Kartı Değişken Skorlama, +Variable Name,Değişken Adı, Parameter Name,Parametre Adı, -Supplier Scorecard Standing,Tedarikçi Puan Kartı Durumu, +Supplier Scorecard Standing,Tedarikçi Puan Kartı Daimi, Notify Other,Diğerini bildir, Supplier Scorecard Variable,Tedarikçi Puan Kartı Değişkeni, -Call Log,çağrı geçmişi, -Received By,gözaltına alındı, +Call Log,Çağrı geçmişi, +Received By,Tarafından alındı, Caller Information,Arayan bilgisi, Contact Name,İrtibat İsmi, -Lead ,Müşteri Adayı , -Lead Name,Müşteri Aday Adı, -Ringing,Ringing, +Lead ,Öncülük etmek, +Lead Name,Potansiyel Müşteri Adı, +Ringing,çınlama, Missed,Kaçırılan, -Call Duration in seconds,Saniye süresi Çağrı Süresi, +Call Duration in seconds,Saniye cinsinden Çağrı Süresi, Recording URL,URL kaydetme, Communication Medium,Haberleşme Orta, -Communication Medium Type,İletişim Orta İpucu, +Communication Medium Type,İletişim Orta Tip, Voice,ses, Catch All,Tümünü Yakala, "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.", @@ -5614,16 +5614,16 @@ Timeslots,Zaman dilimleri, Communication Medium Timeslot,İletişim Orta Zaman Çizelgesi, 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ı, -Skype ID,Skype ID, -Linked Documents,Bağlı Belgeler, -Appointment With,Randevu Bununla İlişkili, +Phone Number,Telefon numarası, +Skype ID,Skype kullanıcı adı, +Linked Documents,Bağlantılı Belgeler, +Appointment With,İle randevu, Calendar Event,Takvim Etkinliği, Appointment Booking Settings,Randevu Rezervasyon Ayarları, -Enable Appointment Scheduling,Randevu Zamanlamayı Etkinleştirme, +Enable Appointment Scheduling,Randevu Zamanlamayı Etkinleştir, Agent Details,Temsilci Detayları, Availability Of Slots,Yuvaların Kullanılabilirliği, Number of Concurrent Appointments,Eşzamanlı Randevu Sayısı, @@ -5631,50 +5631,50 @@ Agents,Ajanlar, Appointment Details,Randevu Detayları, Appointment Duration (In Minutes),Randevu Süresi (Dakika), Notify Via Email,E-posta ile Bildir, -Notify customer and agent via email on the day of the appointment.,Randevu gününde e-posta yoluyla müşteriyi ve acenteyi bilgilendirin., -Number of days appointments can be booked in advance,Randevuların ölçü alınabileceği gün sayısı, +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://alanadınız.com.tr/about" teslim yönlendirmeleri", +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", Appointment Booking Slots,Randevu Rezervasyon Slotları, Day Of Week,Haftanın günü, -From Time ,Baş. Süresi, +From Time ,Zamandan, Campaign Email Schedule,Kampanya E-posta Programı, Send After (days),Sonra Gönder (gün), -Signed,İmzalandı, -Party User,Cari Kullanıcısı, -Unsigned,İmzalanmadı, +Signed,İmzalanmış, +Party User,Parti Kullanıcısı, +Unsigned,imzasız, Fulfilment Status,Yerine Getirilme Durumu, N/A,N / A, Unfulfilled,yerine getirilmemiş, Partially Fulfilled,Kısmen Yerine Getirildi, Fulfilled,Karşılanan, -Lapsed,Süresi dolmuş, +Lapsed,Sona, Contract Period,Sözleşme süresi, -Signee Details,Signee Ayrıntıları, -Signee,İmza Atan, -Signed On,İmzalama tarihi, +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,Sözleşme koşulları, +Contract Terms,Anlaşma koşulları, Fulfilment Details,Yerine Getirme Detayları, Requires Fulfilment,Yerine Getirilmesi Gerekir, -Fulfilment Deadline,Son Teslim Tarihi, +Fulfilment Deadline,Son teslim tarihi, Fulfilment Terms,Yerine Getirme Koşulları, Contract Fulfilment Checklist,Sözleşme Yerine Getirilmesi Kontrol Listesi, -Requirement,Gereklilik, -Contract Terms and Conditions,Sözleşme Hüküm ve Hükümleri, -Fulfilment Terms and Conditions,Yerine Getirme Hükümleri ve Hükümleri, +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,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üldü, -Do Not Contact,İletişime Geçme, +Converted,Dönüştürülmüş, +Do Not Contact,İrtibata Geçmeyin, From Customer,Müşteriden, Campaign Name,Kampanya Adı, Follow Up,Takip et, @@ -5683,7 +5683,7 @@ Next Contact Date,Sonraki İrtibat Tarihi, Ends On,Bitiş Tarihi, Address & Contact,Adres ve İrtibat, Mobile No.,Cep No, -Lead Type,Aday Tipi, +Lead Type,Potansiyel Müşteri Tipi, Channel Partner,Kanal Ortağı, Consultant,Danışman, Market Segment,Pazar Segmenti, @@ -5692,46 +5692,46 @@ 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 ID, +Company ID,Şirket Kimliği, OAuth Credentials,OAuth Kimlik Bilgileri, -Consumer Key,Consumer Key, -Consumer Secret,Consumer Secret, -User Details,Kullanıcı Detayları, +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 Nedeni, -Potential Sales Deal,Potansiyel Satış Anlaşması, +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, -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, Probability (%),Olasılık (%), -Contact Info,İletişim Bilgisi, -Customer / Lead Address,Müşteri / Aday Adresi, -Contact Mobile No,İletişim Cep No, +Contact Info,İletişim Bilgileri, +Customer / Lead Address,Müşteri Adresi, +Contact Mobile No,İrtibat Mobil No, 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 Name,Sahne adı, Social Media Post,Sosyal Medya Gönderisi, -Post Status,Gönderim Durumu, +Post Status,Gönderi Durumu, Posted,Gönderildi, Share On,Paylaş, -Twitter,twitter, +Twitter,Twitter, LinkedIn,LinkedIn, -Twitter Post Id,Twitter Gönderim Kimliği, -LinkedIn Post Id,LinkedIn Gönderim Kimliği, -Tweet,Civildamak, +Twitter Post Id,Twitter Gönderi Kimliği, +LinkedIn Post Id,LinkedIn Gönderi Kimliği, +Tweet,Cıvıldamak, Twitter Settings,Twitter Ayarları, API Secret Key,API Gizli Anahtarı, Term Name,Dönem Adı, @@ -5741,42 +5741,42 @@ Academics User,Akademik Kullanıcı, Academic Year Name,Akademik Yıl Adı, Article,makale, LMS User,LMS Kullanıcısı, -Assessment Criteria Group,Değerlendirme Ölçüleri Grup, +Assessment Criteria Group,Değerlendirme Ölçütleri Grup, Assessment Group Name,Değerlendirme Grubu Adı, Parent Assessment Group,Veli Değerlendirme Grubu, Assessment Name,Değerlendirme Adı, -Grading Scale,Notlandırma cihazı, +Grading Scale,Notlandırma ölçeği, Examiner,müfettiş, -Examiner Name,sınav adı, -Supervisor,süpervizör, +Examiner Name,sınav Adı, +Supervisor,supervisor, Supervisor Name,Süpervizör Adı, -Evaluate,değerlendirme, +Evaluate,Değerlendirmek, Maximum Assessment Score,Maksimum Değerlendirme Puanı, Assessment Plan Criteria,Değerlendirme Planı Kriterleri, Maximum Score,Maksimum Skor, Result,Sonuç, -Total Score,toplam puan, +Total Score,Toplam puan, Grade,sınıf, Assessment Result Detail,Değerlendirme Sonuçlarının Ayrıntıları, Assessment Result Tool,Değerlendirme Sonucu Aracı, -Result HTML,sonuç HTML, +Result HTML,Sonuç HTML, Content Activity,İçerik Etkinliği, -Last Activity ,oğlu Aktivite, +Last Activity ,son Aktivite, Content Question,İçerik Sorusu, Question Link,Soru Bağlantısı, Course Name,Ders Adı, -Topics,başlıklar, +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,Kür Kayıt, +Course Enrollment,Kurs Kayıt, Activity Date,Faaliyet Tarihi, Course Assessment Criteria,Ders Değerlendirme Kriterleri, Weightage,Ağırlık, Course Content,Kurs içeriği, Quiz,bilgi yarışması, -Program Enrollment,programı kayıdı, +Program Enrollment,programı Kaydı, Enrollment Date,başvuru tarihi, Instructor Name,Öğretim Elemanının Adı, EDU-CSH-.YYYY.-,EDU-CSH-.YYYY.-, @@ -5792,30 +5792,30 @@ Current Academic Year,Mevcut Akademik Yıl, 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ıttan her Öğrenci için geçerli olmayacaktır.", -Validate Enrolled Course for Students in Student Group,Kayıtlı Dersi Grubu Öğrenci Öğ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.", +"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.", +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ı'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şturur. Etkinleştirilirse, yeni bir Öğrenci oluşturulduğunda yeni Kullanıcı oluşturulmayacaktır.", +"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, -Employee Number,çalışan sayısı, +Employee Number,Çalışan sayısı, Fee Category,Ücret Kategorisi, Fee Component,Ücret Bileşeni, -Fees Category,Ücretler Kategorisi, -Fee Schedule,ücret Tarifesi, +Fees Category,Ücretler Kategori, +Fee Schedule,Ücret tarifesi, Fee Structure,ücret Yapısı, EDU-FSH-.YYYY.-,EDU-FSH .YYYY.-, Fee Creation Status,Ücret Oluşturma Durumu, -In Process,Devam ediyor, +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, -Institution,Kurum, +Institution,kurum, Fee Schedule Program,Ücret Programı Programı, -Student Batch,Öğrenci Grubu, +Student Batch,Öğrenci Toplu, Total Students,Toplam Öğrenci, Fee Schedule Student Group,Ücret Programı Öğrenci Grubu, EDU-FST-.YYYY.-,EGT-FST-.YYYY.-, @@ -5824,24 +5824,24 @@ Include Payment,Ödeme Dahil Et, Send Payment Request,Ödeme Talebi Gönderme, Student Details,Öğrenci Ayrıntıları, Student Email,Öğrenci E-postası, -Grading Scale Name,Değil Verme Ölçeği Adı, -Grading Scale Intervals,Değil Verme Ölçeği Aralıkları, +Grading Scale Name,Not Verme Ölçeği Adı, +Grading Scale Intervals,Not Verme Ölçeği Aralıkları, Intervals,Aralıklar, Grading Scale Interval,Not Verme Ölçeği Aralığı, -Grade Code,Sınıf Kodu, -Threshold,Eşik, -Grade Description,açıklama sınıfı, -Guardian,Veli, -Guardian Name,Veli adı, -Alternate Number,Alternatif Numara, +Grade Code,sınıf Kodu, +Threshold,eşik, +Grade Description,sınıf Açıklama, +Guardian,vasi, +Guardian Name,Muhafız adı, +Alternate Number,alternatif Numara, Occupation,Meslek, -Work Address,iş adresi, -Guardian Of ,Velinin, +Work Address,İş adresi, +Guardian Of ,Of The Guardian, Students,Öğrenciler, -Guardian Interests,Veli İlgi Alanları, -Guardian Interest,Veli İlgi Alanı, +Guardian Interests,Guardian İlgi, +Guardian Interest,Guardian İlgi, Interest,Faiz, -Guardian Student,Veli Öğrenci, +Guardian Student,Guardian Öğrenci, EDU-INS-.YYYY.-,EDU-INS-.YYYY.-, Instructor Log,Eğitmen Günlüğü, Other details,Diğer Detaylar, @@ -5853,35 +5853,35 @@ Courses,Dersler, Is Published,Yayınlandı, Allow Self Enroll,Kendi Kendine Kayda İzin Ver, Is Featured,Özellikli, -Intro Video,Tanıtım Videoları, +Intro Video,Tanıtım Videosu, Program Course,programı Ders, -School House,okul evi, +School House,Okul Evi, 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, -Self-Driving Vehicle,kendinden tahrikli araç, +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, Program Enrollment Course,Program Kayıt Kursu, Program Enrollment Fee,Program Kayıt Ücreti, Program Enrollment Tool,Programı Kaydı Aracı, -Get Students From,Gönderen öğrenciler alındı, -Student Applicant,Öğrenci Başvurusu, -Get Students,öğrenciler alınıyor, +Get Students From,Gönderen Öğrenciler alın, +Student Applicant,Öğrenci Başvuru, +Get Students,Öğrenciler alın, Enrollment Details,Kayıt Ayrıntıları, New Program,yeni Program, New Student Batch,Yeni Öğrenci Toplu İşi, -Enroll Students,öğrenci kayıt, +Enroll Students,Öğrenciler kayıt, New Academic Year,Yeni Akademik Yıl, New Academic Term,Yeni Akademik Dönem, -Program Enrollment Tool Student,Programı Kaydı Öğrenci Aracı, +Program Enrollment Tool Student,Programı Kaydı Aracı Öğrenci, Student Batch Name,Öğrenci Toplu Adı, Program Fee,Program Ücreti, -Question,soru, +Question,Soru, Single Correct Answer,Tek Doğru Cevap, -Multiple Correct Answer,Çokluk Doğru Cevap, +Multiple Correct Answer,Çoklu Doğru Cevap, Quiz Configuration,Sınav Yapılandırması, Passing Score,Geçme puanı, Score out of 100,100 üzerinden puan, @@ -5892,26 +5892,26 @@ Latest Highest Score,En Son En Yüksek Puan, Latest Attempt,Son Girişim, Quiz Activity,Sınav Etkinliği, Enrollment,kayıt, -Pass,geçiş, +Pass,Geçiş, Quiz Question,Sınav Sorusu, Quiz Result,Sınav Sonucu, Selected Option,Seçili Seçenek, Correct,Doğru, -Wrong,yanlış, -Room Name,oda ismi, +Wrong,Yanlış, +Room Name,Oda ismi, Room Number,Oda numarası, -Seating Capacity,oturma kapasitesi, +Seating Capacity,Oturma kapasitesi, House Name,Evin adı, EDU-STU-.YYYY.-,EDU-STU-.YYYY.-, Student Mobile Number,Öğrenci Cep Numarası, Joining Date,birleştirme tarihi, -Blood Group,kan grubu, -A+,+, +Blood Group,Kan grubu, +A+,A+, A-,A-, B+,B+, B-,B-, O+,O +, -O-,Ö-, +O-,O-, AB+,AB+, AB-,AB-, Nationality,milliyet, @@ -5919,10 +5919,10 @@ Home Address,Ev adresi, Guardian Details,Guardian Detayları, Guardians,Veliler, Sibling Details,kardeş Detaylar, -Siblings,kardeşler, +Siblings,Kardeşler, Exit,Çıkış, Date of Leaving,Ayrılış tarihi, -Leaving Certificate Number,Sertifika Numarası Ayrılıyor, +Leaving Certificate Number,Sertifika Numarası Leaving, Reason For Leaving,Ayrılma sebebi, Student Admission,Öğrenci Kabulü, Admission Start Date,Kabul Başlangıç Tarihi, @@ -5930,11 +5930,11 @@ Admission End Date,Kabul Bitiş Tarihi, 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ş, +Minimum Age,Asgari yaş, Maximum Age,Maksimum Yaş, -Application Fee,başvuru ücreti, -Naming Series (for Student Applicant),Seri İsimlendirme (Öğrenci Başvurusu için), -LMS Only,sadece LMS, +Application Fee,Başvuru ücreti, +Naming Series (for Student Applicant),Seri İsimlendirme (Öğrenci Başvuru için), +LMS Only,Sadece LMS, EDU-APP-.YYYY.-,EDU-APP-.YYYY.-, Application Status,Başvuru Durumu, Application Date,Başvuru Tarihi, @@ -5944,24 +5944,24 @@ Students HTML,Öğrenciler HTML, Group Based on,Ona Dayalı Grup, Student Group Name,Öğrenci Grubu Adı, Max Strength,Maksimum Güç, -Set 0 for no limit,hiçbir sınırı 0 olarak ayarlamak, -Instructors,ders, +Set 0 for no limit,hiçbir sınırı 0 olarak ayarlayın, +Instructors,Ders, 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 boş bırakın., +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, Separate course based Group for every Batch,Her Toplu İş için Ayrılmış Kurs Tabanlı Grup, -Leave unchecked if you don't want to consider batch while making course based groups. ,"Kurs temelli gruplar yaparken toplu düşünmeyi sonlandırın, gecen.", +Leave unchecked if you don't want to consider batch while making course based groups. ,"Kurs temelli gruplar yaparken toplu düşünmeyi istemiyorsanız, işaretlemeyin.", Student Group Creation Tool Course,Öğrenci Grubu Oluşturma Aracı Kursu, -Course Code,Kür kodu, -Student Group Instructor,Öğrenci Grubu Eğitimi, -Student Group Student,Öğrenci Öğrenci Grubu, +Course Code,Kurs kodu, +Student Group Instructor,Öğrenci Grubu Eğitmeni, +Student Group Student,Öğrenci Grubu Öğrenci, Group Roll Number,Grup Rulosu Numarası, -Student Guardian,Öğrenci Velisi, +Student Guardian,Öğrenci Guardian, Relation,İlişki, Mother,Anne, Father,Baba, Student Language,Öğrenci Dili, -Student Leave Application,Öğrenci Bırakma Uygulaması, +Student Leave Application,Öğrenci bırak Uygulaması, Mark as Present,Şimdiki olarak işaretle, Student Log,Öğrenci Günlüğü, Academic,Akademik, @@ -5972,59 +5972,59 @@ Show Marks,İşaretleri Göster, Add letterhead,Antetli Kağıt Ekle, Print Section,Baskı bölümü, Total Parents Teacher Meeting,Toplam Veliler Öğretmen Toplantısı, -Attended by Parents,bireylerin katıldığı, -Assessment Terms,değerlendirme şartları, +Attended by Parents,Ebeveynlerin Katıldığı, +Assessment Terms,Değerlendirme şartları, Student Sibling,Öğrenci Kardeş, -Studying in Same Institute,Aynı enstitüyü incelemek, +Studying in Same Institute,Aynı Enstitüsü incelenmesi, NO,HAYIR, YES,EVET, Student Siblings,Öğrenci Kardeşleri, Topic Content,Konu İçeriği, Amazon MWS Settings,Amazon MWS Ayarları, ERPNext Integrations,ERPNext Entegrasyonları, -Enable Amazon,Amazon u etkinleştir, +Enable Amazon,Amazon'u etkinleştir, MWS Credentials,MWS Kimlik Bilgileri, Seller ID,Satıcı Kimliği, AWS Access Key ID,AWS Erişim Anahtarı Kimliği, -MWS Auth Token,MWS Kimlik Doğrulama Jetonu, +MWS Auth Token,MWS Auth Jetonu, Market Place ID,Pazar Yeri Kimliği, AE,AE, -AU,au, +AU,AU, BR,BR, CA,CA, CN,CN, -DE,Almanya, +DE,DE, ES,ES, FR,FR, -IN,IN, +IN,İÇİNDE, JP,JP, -IT,Ö, +IT,O, MX,MX, -UK,Birleşik Krallık, +UK,UK, US,BİZE, -Customer Type,Müşteri Tipi, -Market Place Account Group,Pazar Yeri Hesap Grubu, +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 kapsamdan sonra güncellenen veriler senkronize edilecek, +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 ,Verginin mali ayrılığını al ve Amazon tarafından veri topla, +Get financial breakup of Taxes and charges data by Amazon ,Vergi'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ünlerini 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'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şini çekmek için bu düğmeyi tıklayın., -Enable Scheduled Sync,Zamanlanmış Senkronizasyonu Etkinleştirin, -Check this to enable a scheduled Daily synchronization routine via scheduler,Zamanlayıcı ile programlanmış Günlük depolama rutinini kullanmak için bunu kontrol edin., +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., +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ı, Exotel Settings,Exotel Ayarları, -Account SID,Hesap SID'si, +Account SID,Hesap SID, API Token,API Simgesi, -GoCardless Mandate,GoCardless Yetkisi, +GoCardless Mandate,GoCardless Mandate, Mandate,manda, GoCardless Customer,GoCardless Müşterisi, -GoCardless Settings,GoCardsız Ayarları, -Webhooks Secret,Web kancaları Sırrı, -Plaid Settings,Ekose Ayarları, -Synchronize all accounts every hour,Tüm hesapları her saat başı senkronizasyon et, +GoCardless Settings,GoCardless Ayarları, +Webhooks Secret,Webhooks Sırrı, +Plaid Settings,Ekose Ayarlar, +Synchronize all accounts every hour,Tüm hesapları her saat başı senkronize et, Plaid Client ID,Ekose Müşteri Kimliği, Plaid Secret,Ekose Sırrı, Plaid Environment,Ekose Çevre, @@ -6032,9 +6032,9 @@ sandbox,kum havuzu, development,gelişme, production,üretim, QuickBooks Migrator,QuickBooks Migrator, -Application Settings,Uygulama Ayarları, +Application Settings,Uygulama ayarları, Token Endpoint,Token Bitiş Noktası, -Scope,kapsama, +Scope,kapsam, Authorization Settings,Yetkilendirme Ayarları, Authorization Endpoint,Yetkilendirme Bitiş Noktası, Authorization URL,Yetkilendirme URL'si, @@ -6048,25 +6048,25 @@ Shopify Log,Shopify Günlüğü, Request Data,Veri İste, Shopify Settings,Shopify Ayarları, status html,durum html, -Enable Shopify,Shopify Etkinleştir, +Enable Shopify,Shopify'ı etkinleştir, App Type,Uygulama Türü, Last Sync Datetime,Son Senkronizasyon Tarihi, Shop URL,Mağaza URL'si, -eg: frappe.myshopify.com,örnekleme: frappe.myshopify.com, +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ı, +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üşteriler senkronize iken seçilmiş grup ayarlanacak", +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", For Company,Şirket için, -Cash Account will used for Sales Invoice creation,Satış Faturası oluşturmak için Nakit Hesabı kullanımtır, -Update Price from Shopify To ERPNext Price List,ERPNext Fiyat Listesinden Shopify Güncelleme Fiyatı, -Default Warehouse to to create Sales Order and Delivery Note,Satış Siparişi ve İrsaliye Oluşturma İçin Varsayılan Depo, +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 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'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'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ığı, @@ -6074,18 +6074,18 @@ ERPNext Account,ERPNext Hesabı, Shopify Webhook Detail,Shopify Webhook Detayı, Webhook ID,Webhook Kimliği, Tally Migration,Tally Göç, -Master Data,Ana bileşenler, -"Data exported from Tally that consists of the Chart of Accounts, Customers, Suppliers, Addresses, Items and UOMs","Tally'den oluşan Hesap Planı, Müşteriler, Tedarikçiler, Adresler, Kalemler ve UOM'lardan aktarılan bağlantı", +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", 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'de belirlendi, Tally Debtors Account,Tally Borçlular Hesabı, Debtors Account set in Tally,Borçlu Hesabı Tally'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 ölçü birimi, -UOM in case unspecified in imported data,İçe aktarılan bilgilerde belirtilmemiş olması durumunda UOM, +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ı, Processed Files,İşlenmiş Dosyalar, @@ -6097,24 +6097,24 @@ 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, 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ı, +Woocommerce Settings,Woocommerce Ayarları, Enable Sync,Senkronizasyonu Etkinleştir, -Woocommerce Server URL,WooCommerce Sunucusu URL'si, +Woocommerce Server URL,Woocommerce Sunucusu URL'si, Secret,Gizli, -API consumer key,API işletim anahtarı, -API consumer secret,API şifreleme sırrı, +API consumer key,API tüketici anahtarı, +API consumer secret,API tüketici sırrı, Tax Account,Vergi Hesabı, Freight and Forwarding Account,Yük ve Nakliyat Hesabı, -Creation User,Yaratıcı 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ı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şlerini oluşturmak için kullanmaktır. Yedek depo "Mağazalar" dir., -"The fallback series is ""SO-WOO-"".",Geri dönüş serisi "SO-WOO-", -This company will be used to create Sales Orders.,Bu şirket Satış Siparişlerini oluşturmak için kullanmaktır., +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 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 servisleri 7 dosyadan itibaren.", -"This is the default UOM used for items and Sales orders. The fallback UOM is ""Nos"".","Bu, sunucu ve Satış siparişleri için kullanılan varsayılan UOM'dir. Geri dönüş UOM'si ""Nos"".", -Endpoints,uç noktalar, -Endpoint,son nokta, +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".", +Endpoints,Endpoints, +Endpoint,Son nokta, Antibiotic Name,Antibiyotik adı, Healthcare Administrator,Sağlık Yöneticisi, Laboratory User,Laboratuar Kullanıcısı, @@ -6123,17 +6123,17 @@ Default Duration (In Minutes),Varsayılan Süre (Dakika Olarak), Body Part,Vücut parçası, Body Part Link,Gövde Parçası Bağlantısı, HLC-CPR-.YYYY.-,HLC-CPR-.YYYY.-, -Procedure Template,gözenek şablonu, -Procedure Prescription,Cezalar Reçete, +Procedure Template,Prosedür şablonu, +Procedure Prescription,Prosedür Reçete, Service Unit,Servis Ünitesi, -Consumables,sarf, -Consume Stock,Stok tüketimi, +Consumables,Sarf, +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ı, Consumption Details,Tüketim Ayrıntıları, -Nursing User,hemşirelik kullanıcı, -Clinical Procedure Item,Klinik görüntü öğesi, +Nursing User,Hemşirelik kullanıcısı, +Clinical Procedure Item,Klinik Prosedür Öğesi, Invoice Separately as Consumables,Sarf Malzemeleri Olarak Ayrı Olarak Fatura, Transfer Qty,Miktarı Aktar, Actual Qty (at source/target),Fiili Miktar (kaynak / hedef), @@ -6142,16 +6142,16 @@ Allow Stock Consumption,Stok Tüketimine İzin Ver, Sample UOM,Örnek UOM, Collection Details,Koleksiyon Ayrıntıları, Change In Item,Öğede Değişim, -Codification Table,Kodlama Tablosu, -Complaints,şikayetçi, +Codification Table,Codification Table, +Complaints,Şikayetler, Dosage Strength,Dozaj Mukavemeti, Strength,kuvvet, Drug Prescription,İlaç Reçetesi, -Drug Name / Description,İlaç Adı / Açıklama, +Drug Name / Description,İlaç Adı / Açıklaması, Dosage,Dozaj, Dosage by Time Interval,Zaman aralığına göre dozaj, Interval,Aralık, -Interval UOM,Aralık Birimi, +Interval UOM,Aralık UOM'sı, Hour,Saat, Update Schedule,Programı Güncelle, Exercise,Egzersiz yapmak, @@ -6159,11 +6159,11 @@ Difficulty Level,Zorluk seviyesi, Counts Target,Hedefi Sayar, Counts Completed,Tamamlanan Sayımlar, Assistance Level,Yardım Düzeyi, -Active Assist,Aktif Asistan, +Active Assist,Aktif Asist, Exercise Name,Egzersiz Adı, -Body Parts,Vücut parçaları, +Body Parts,Vücut kısımları, Exercise Instructions,Egzersiz Talimatları, -Exercise Video,Egzersiz Videoları, +Exercise Video,Egzersiz Videosu, Exercise Steps,Egzersiz Adımları, Steps,Adımlar, Steps Table,Adım Tablosu, @@ -6172,11 +6172,11 @@ Max number of visit,Maks Ziyaret Sayısı, Visited yet,Henüz ziyaret edilmedi, Reference Appointments,Referans Randevuları, Valid till,Kadar geçerli, -Fee Validity Reference,Ücret geçerlilik Referansı, +Fee Validity Reference,Ücret Geçerlilik Referansı, Basic Details,Temel Ayrıntılar, HLC-PRAC-.YYYY.-,HLC-PRAC-.YYYY.-, Mobile,seyyar, -Phone (R),Telefon (Sağ), +Phone (R),Telefon (R), Phone (Office),Telefon (Ofis), Employee and User Details,Çalışan ve Kullanıcı Ayrıntıları, Hospital,Hastane, @@ -6192,73 +6192,73 @@ Allow Appointments,Randevulara İzin Ver, Allow Overlap,Çakışmaya İzin Ver, Inpatient Occupancy,Yatan Doluluk, Occupancy Status,Doluluk Durumu, -Vacant,boş, +Vacant,Boş, Occupied,Meşgul, Item Details,Ürün Detayları, UOM Conversion in Hours,Saatlerde UOM Dönüşüm, Rate / UOM,Oran / UOM, Change in Item,Öğeyi Değiştir, -Out Patient Settings,Dışarıdaki Hasta Ayarları, -Patient Name By,Hasta Adına göre, +Out Patient Settings,Out Patient Settings, +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üşteriye karşı hasta faturaları oluşturulacaktır. Hasta oluşturmaken mevcut Müşteriyi çalıştırma.", +"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.", Default Medical Code Standard,Varsayılan Tıbbi Kod Standardı, -Collect Fee for Patient Registration,Hasta Kaydı 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ışı maliyetlerine sahip yeni Hastalar oluşturacak ve yalnızca Kayıt Ücreti faturalandırma sonrasında etkinleştirilecektir.", -Registration Fee,kayıt ücreti, -Automate Appointment Invoicing,Randevu Faturalandırmasını Otomatikleştirme, -Manage Appointment Invoice submit and cancel automatically for Patient Encounter,Randevu Faturasını Yönetme Hasta Karşılaşma için otomatik olarak gönder ve iptal et, -Enable Free Follow-ups,Ücretsiz Takipleri Etkinleştirin, -Number of Patient Encounters in Valid Days,Uygulama Günlerindeki Hasta Karşılaşma Sayısı, +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.", +Registration Fee,Kayıt ücreti, +Automate Appointment Invoicing,Randevu Faturalandırmasını Otomatikleştirin, +Manage Appointment Invoice submit and cancel automatically for Patient Encounter,Randevu Faturasını Yönetme Hasta Encounter için otomatik olarak gönder ve iptal et, +Enable Free Follow-ups,Ücretsiz Takipleri Etkinleştir, +Number of Patient Encounters in Valid Days,Geçerli Günlerdeki Hasta Karşılaşma Sayısı, The number of free follow ups (Patient Encounters in valid days) allowed,İzin verilen ücretsiz takip sayısı (geçerli günlerdeki Hasta Karşılaşmaları), -Valid Number of Days,geçerli gün sayısı, +Valid Number of Days,Geçerli gün sayısı, Time period (Valid number of days) for free consultations,Ücretsiz danışmanlık için süre (Geçerli gün sayısı), Default Healthcare Service Items,Varsayılan Sağlık Hizmeti Öğeleri, -"You can configure default Items for billing consultation charges, procedure consumption items and inpatient visits","Faturalama süreleri, işletim tüketim kalemleri ve yatan hasta ziyaretleri için varsayılan Öğeleri yapılandırabilirsiniz.", -Clinical Procedure Consumable Item,Klinik çevre Sarf Malzemesi, +"You can configure default Items for billing consultation charges, procedure consumption items and inpatient visits","Faturalama danışma ücretleri, prosedür tüketim kalemleri ve yatan hasta ziyaretleri için varsayılan Öğeleri yapılandırabilirsiniz.", +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 Uygulandığında belirtilmemişse varsayılan gelir hesapları., -Default receivable accounts to be used to book Appointment charges.,Randevu ücretlerini sınırlama için kullanılacak varsayılan alacak 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ı., +Default receivable accounts to be used to book Appointment charges.,Randevu ücretlerini ayırmak için kullanılacak varsayılan alacak hesapları., Out Patient SMS Alerts,Out Hasta SMS Uyarıları, -Patient Registration,Hasta Kaydı, +Patient Registration,Hasta Kayıt, Registration Message,Kayıt Mesajı, -Confirmation Message,onay mesajı, +Confirmation Message,Onay mesajı, Avoid Confirmation,Onaydan Kaçının, -Do not confirm if appointment is created for the same day,Aynı gün için randevu oluşturup oluşturmamasını teyit etmeyin, +Do not confirm if appointment is created for the same day,Aynı gün için randevu oluşturulup oluşturulmadığını teyit etmeyin, Appointment Reminder,Randevu Hatırlatıcısı, Reminder Message,Hatırlatma Mesajı, Remind Before,Daha Önce Hatırlat, Laboratory Settings,Laboratuar Ayarları, Create Lab Test(s) on Sales Invoice Submission,Satış Faturası Gönderiminde Laboratuvar Testleri Oluşturun, -Checking this will create Lab Test(s) specified in the Sales Invoice on submission.,"Bunu kontrol etmek, teslim satış faturasında belirtilen Laboratuar Testlerini oluşturacaktır.", +Checking this will create Lab Test(s) specified in the Sales Invoice on submission.,"Bunu kontrol etmek, teslim edildiğinde Satış Faturasında belirtilen Laboratuar Testlerini oluşturacaktır.", Create Sample Collection document for Lab Test,Laboratuvar Testi için Örnek Koleksiyon belgesi oluşturun, -Checking this will create a Sample Collection document every time you create a Lab Test,"Bunu bulduk, her Laboratuar Testi oluşturduğunuzda bir Örnek Koleksiyon belgesi oluşturacaktır.", -Employee name and designation in print,Basili çalışan ismi ve ismi, -Check this if you want the Name and Designation of the Employee associated with the User who submits the document to be printed in the Lab Test Report.,Belgeyi gönderen Kullanıcı ile çalışanın Adının ve Tanımının Laboratuar Test Raporunda yazdırılmasını istemek onu incelemek., +Checking this will create a Sample Collection document every time you create a Lab Test,"Bunu işaretlemek, her Laboratuar Testi oluşturduğunuzda bir Örnek Koleksiyon belgesi oluşturacaktır.", +Employee name and designation in print,Basılı çalışan ismi ve ismi, +Check this if you want the Name and Designation of the Employee associated with the User who submits the document to be printed in the Lab Test Report.,Belgeyi gönderen Kullanıcı ile ilişkili Çalışanın Adının ve Tanımının Laboratuar Test Raporunda yazdırılmasını istiyorsanız bunu işaretleyin., Do not print or email Lab Tests without Approval,Onay Olmadan Laboratuvar Testlerini yazdırmayın veya e-postayla göndermeyin, -Checking this will restrict printing and emailing of Lab Test documents unless they have the status as Approved.,"Onaylandı sınırlarına sahip olunmadığı sürece, bunun için işaretlenmesi Lab Test belgelerinin yazdırılmasını ve e-posta ile gizliliğini kısıtlayacaktır.", +Checking this will restrict printing and emailing of Lab Test documents unless they have the status as Approved.,"Onaylandı durumuna sahip olmadıkları sürece, bunun işaretlenmesi Lab Test belgelerinin yazdırılmasını ve e-posta ile gönderilmesini kısıtlayacaktır.", Custom Signature in Print,Baskıda Özel İmza, -Laboratory SMS Alerts,Laboratuvar SMS Uyarıları, +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ş, -Check Out,çıkış yapmak, -HLC-INP-.YYYY.-,HLC-GİRİŞ-.YYYY.-, -A Positive,Pozitif, -A Negative,Bir Negatif, +Check In,Giriş, +Check Out,Çıkış yapmak, +HLC-INP-.YYYY.-,HLC-INP-.YYYY.-, +A Positive,A Pozitif, +A Negative,A Negatif, AB Positive,AB Pozitif, AB Negative,AB Negatif, B Positive,B Pozitif, B Negative,B Negatif, -O Positive,Olumsuz, +O Positive,O Olumlu, O Negative,O Negatif, -Date of birth,doğum tarihi, +Date of birth,Doğum tarihi, Admission Scheduled,Kabulü Planlanmış, Discharge Scheduled,Planlanan Deşarj, Discharged,taburcu, Admission Schedule Date,Kabul Takvimi Tarihi, -Admitted Datetime,kabul edilen tarih, +Admitted Datetime,Kabul edilen tarih, Expected Discharge,Beklenen Deşarj, Discharge Date,Deşarj Tarihi, Lab Prescription,Laboratuar Reçetesi, @@ -6267,53 +6267,53 @@ Test Created,Test Oluşturuldu, Submitted Date,Teslim Tarihi, Approved Date,Onaylanmış Tarih, Sample ID,Örnek Kimlik Numarası, -Lab Technician,laboratuvar teknisyeni, -Report Preference,Tercih Raporu, +Lab Technician,Laboratuvar teknisyeni, +Report Preference,Rapor Tercihi, Test Name,Test Adı, Test Template,Test Şablonu, Test Group,Test Grubu, Custom Result,Özel Sonuç, LabTest Approver,LabTest Onaylayıcısı, Add Test,Test Ekle, -Normal Range,normal aralık, +Normal Range,Normal aralık, Result Format,Sonuç Biçimi, Single,Tek, -Compound,ulaştırmak, +Compound,bileşik, Descriptive,Tanımlayıcı, Grouped,gruplanmış, -No Result,sonuç yok, +No Result,Sonuç yok, This value is updated in the Default Sales Price List.,Bu değer Varsayılan Satış Fiyatı Listesinde güncellenir., Lab Routine,Laboratuar rutini, Result Value,Sonuç Değeri, Require Result Value,Sonuç Değerini Gerektir, Normal Test Template,Normal Test Şablonu, -Patient Demographics,Hasta Demografisi, +Patient Demographics,Hasta Demografi, 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 Yapılandırmasında "Müşteriyi Hastaya Bağla" İşaretlenmişse ve mevcut bir Müşteri tercihiyse, Hesaplar evinde 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 "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.", Personal and Social History,Kişisel ve Sosyal Tarih, Marital Status,Medeni durum, Married,Evli, Divorced,Ayrılmış, -Widow,sıkıcı, +Widow,Dul, Patient Relation,Hasta ilişkisi, "Allergies, Medical and Surgical History","Alerjiler, Tıp ve Cerrahi Tarihi", Allergies,Alerjiler, Medication,ilaç, -Medical History,tıbbi geçmiş, +Medical History,Tıbbi geçmiş, Surgical History,Cerrahi Tarih, -Risk Factors,risk kuşağı, +Risk Factors,Risk faktörleri, Occupational Hazards and Environmental Factors,Mesleki Tehlikeler ve Çevresel Faktörler, Other Risk Factors,Diğer Risk Faktörleri, Patient Details,Hasta Ayrıntıları, Additional information regarding the patient,Hastaya ilişkin ek bilgiler, HLC-APP-.YYYY.-,HLC-UYGULAMA-.YYYY.-, Patient Age,Hasta Yaşı, -Get Prescribed Clinical Procedures,Reçeteli Klinik cezaları Alıntı, +Get Prescribed Clinical Procedures,Reçeteli Klinik Prosedürleri Alın, Therapy,Terapi, Get Prescribed Therapies,Reçeteli Tedaviler Alın, -Appointment Datetime,Randevu Tarih Saati, +Appointment Datetime,Randevu Tarih Saat, Duration (In Minutes),Süre (Dakika Olarak), Reference Sales Invoice,Referans Satış Faturası, More Info,Daha Fazla Bilgi, @@ -6322,49 +6322,49 @@ Reminded,hatırlatıldı, HLC-PA-.YYYY.-,HLC-PA-.YYYY.-, Assessment Template,Değerlendirme Şablonu, Assessment Datetime,Değerlendirme Tarihi, -Assessment Description,Değerlendirme açıklaması, -Assessment Sheet,değerlendirme belgesi, +Assessment Description,Değerlendirme Açıklaması, +Assessment Sheet,Değerlendirme belgesi, Total Score Obtained,Elde Edilen Toplam Puan, Scale Min,Ölçek Min, Scale Max,Max Ölçek, Patient Assessment Detail,Hasta Değerlendirme Detayı, -Assessment Parameter,Değerlendirme Parametreleri, -Patient Assessment Parameter,Hasta Değerlendirme Parametreleri, +Assessment Parameter,Değerlendirme Parametresi, +Patient Assessment Parameter,Hasta Değerlendirme Parametresi, Patient Assessment Sheet,Hasta Değerlendirme Formu, Patient Assessment Template,Hasta Değerlendirme Şablonu, Assessment Parameters,Değerlendirme Parametreleri, Parameters,Parametreler, Assessment Scale,Değerlendirme Ölçeği, -Scale Minimum,Asgari Ölçek, +Scale Minimum,Minimum Ölçek, Scale Maximum,Maksimum Ölçek, HLC-ENC-.YYYY.-,HLC-ENC-.YYYY.-, Encounter Date,Karşılaşma Tarihi, Encounter Time,Karşılaşma Zamanı, Encounter Impression,Karşılaşma İzlenim, Symptoms,Semptomlar, -In print,yazıcıda, +In print,Yazıcıda, Medical Coding,Tıbbi Kodlama, -Procedures,muayenehaneler, +Procedures,prosedürler, Therapies,Terapiler, -Review Details,Ayrıntıları inceleme, +Review Details,Ayrıntıları İnceleme, Patient Encounter Diagnosis,Hasta Karşılaşma Teşhisi, Patient Encounter Symptom,Hasta Karşılaşma Semptomu, HLC-PMR-.YYYY.-,HLC-FTR-.YYYY.-, Attach Medical Record,Tıbbi Kayıt Ekleyin, Reference DocType,Referans Belge Türü, -Spouse,Eş, -Family,aile, +Spouse,eş, +Family,Aile, Schedule Details,Program Ayrıntıları, Schedule Name,Program Adı, Time Slots,Zaman dilimleri, Practitioner Service Unit Schedule,Uygulayıcı Hizmet Birimi Takvimi, -Procedure Name,tutuklu adı, +Procedure Name,Prosedür adı, Appointment Booked,Randevu Alındı, -Procedure Created,Oluşturulan daire, +Procedure Created,Oluşturulan Prosedür, HLC-SC-.YYYY.-,HLC-SC-.YYYY.-, -Collected By,tarafından toplanan, -Particulars,Detaylar, -Result Component,Sonuç Bileşenleri, +Collected By,Tarafından toplanan, +Particulars,Ayrıntılar, +Result Component,Sonuç Bileşeni, HLC-THP-.YYYY.-,HLC-THP-.YYYY.-, Therapy Plan Details,Tedavi Planı Ayrıntıları, Total Sessions,Toplam Oturumlar, @@ -6374,25 +6374,25 @@ No of Sessions,Oturum Sayısı, Sessions Completed,Tamamlanan Oturumlar, Tele,Tele, Exercises,Egzersizler, -Therapy For,İçin Terapi, +Therapy For,Terapi İçin, Add Exercises,Egzersiz Ekle, Body Temperature,Vücut Sıcaklığı, Presence of a fever (temp > 38.5 °C/101.3 °F or sustained temp > 38 °C/100.4 °F),Ateşin varlığı (sıcaklık> 38.5 ° C / 101.3 ° F veya sürekli> 38 ° C / 100.4 ° F), -Heart Rate / Pulse,Nabiz / Darbe, +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 ± için normal referans aralığı 16-20 nefes / dakika'dır (RCP 2012), +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), Tongue,Dil, Coated,Kaplanmış, Very Coated,Çok Kaplamalı, Normal,Normal, Furry,Kürklü, -Cuts,Keser, -Abdomen,Karın bölgesi, -Bloated,Şişmiş, -Fluid,Elinde bulundurmak, -Constipated,Kabız, -Reflexes,Refleksler, +Cuts,keser, +Abdomen,karın bölgesi, +Bloated,şişmiş, +Fluid,akışkan, +Constipated,kabız, +Reflexes,refleksler, Hyper,Aşırı, Very Hyper,Çok hiper, One Sided,Tek taraflı, @@ -6402,22 +6402,22 @@ 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, Nutrition Values,Beslenme Değerleri, Height (In Meter),Yükseklik (Metrede), -Weight (In Kilogram),Ağırlık (Kilogram ölçüsü), +Weight (In Kilogram),Ağırlık (Kilogram cinsinden), BMI,BMI, -Hotel Room,otel odası, +Hotel Room,Otel odası, Hotel Room Type,Otel Oda Tipi, -Capacity,kapasite, +Capacity,Kapasite, Extra Bed Capacity,Ekstra Yatak Kapasitesi, -Hotel Manager,otel yöneticisi, +Hotel Manager,Otel yöneticisi, Hotel Room Amenity,Otel Odası İmkanları, Billable,Faturalandırılabilir, Hotel Room Package,Otel Oda Paketi, Amenities,Kolaylıklar, -Hotel Room Pricing,Otel Odası Fiyatlandırması, -Hotel Room Pricing Item,Otel Oda Fiyatlandırması Öğesi, -Hotel Room Pricing Package,Otel Odası Fiyatlandırma Paketi, +Hotel Room Pricing,Otel Odasının Fiyatlandırması, +Hotel Room Pricing Item,Otel Oda Fiyatlandırması Öğe, +Hotel Room Pricing Package,Otel Odasında Fiyatlandırma Paketi, Hotel Room Reservation,Otel Odaları Rezervasyonu, -Guest Name,misafir adı, +Guest Name,Misafir adı, Late Checkin,Geç Checkin, Booked,ayrılmış, Hotel Reservation User,Otel Rezervasyonu Kullanıcısı, @@ -6425,27 +6425,27 @@ Hotel Room Reservation Item,Otel Odasında Rezervasyon Öğesi, Hotel Settings,Otel Ayarları, Default Taxes and Charges,Standart Vergi ve Harçlar, Default Invoice Naming Series,Varsayılan Fatura Adlandırma Dizisi, -Additional Salary,ek ücret, +Additional Salary,Ek ücret, HR,İK, -HR-ADS-.YY.-.MM.-,HR-ADS-.YY .-. AA.-, -Salary Component,Maaş Bileşenleri, -Overwrite Salary Structure Amount,Maaş Yapısı Miktarının Üzerine Yazma, -Deduct Full Tax on Selected Payroll Date,Seçilen Bordro Tarihinde Tam Vergiden Düşüş, +HR-ADS-.YY.-.MM.-,HR-ADS-.YY .-. MM.-, +Salary Component,Maaş Bileşeni, +Overwrite Salary Structure Amount,Maaş Yapısı Miktarının Üzerine Yaz, +Deduct Full Tax on Selected Payroll Date,Seçilen Bordro Tarihinde Tam Vergiden düşme, Payroll Date,Bordro Tarihi, -Date on which this component is applied,Bu ürünün kesinlik tarihi, +Date on which this component is applied,Bu bileşenin uygulandığı tarih, Salary Slip,Bordro, Salary Component Type,Maaş Bileşeni Türü, -HR User,İK Kullanıcısı, +HR User,İK Kullanıcı, Appointment Letter,Randevu mektubu, Job Applicant,İş Başvuru Sahiibi, -Applicant Name,başvuru sahibi adı, +Applicant Name,Başvuru sahibinin adı, Appointment Date,Randevu Tarihi, Appointment Letter Template,Randevu Mektubu Şablonu, -Body,vücut, +Body,Vücut, Closing Notes,Kapanış Notları, Appointment Letter content,Randevu Mektubu içeriği, -Appraisal,Ekspertiz:Değerlendirme, -HR-APR-.YY.-.MM.,HR-NİSAN-.YY.-.MM., +Appraisal,Appraisal:Değerlendirme, +HR-APR-.YY.-.MM.,HR-APR-.YY.-.MM., Appraisal Template,Değerlendirme Şablonu, For Employee Name,Çalışan Adına, Goals,Hedefler, @@ -6460,16 +6460,16 @@ Appraisal Template Title,Değerlendirme Şablonu Başlığı, Appraisal Template Goal,Değerlendirme Şablonu Hedefi, KRA,KRA, Key Performance Area,Kilit Performans Alanı, -HR-ATT-.YYYY.-,HR-İlgi-.YYYY.-, +HR-ATT-.YYYY.-,HR-ATT-.YYYY.-, On Leave,İzinli, -Work From Home,evden çalışmak, -Leave Application,izin başvurusu, +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, +On Duty,Görevde, Explanation,açıklama, Compensatory Leave Request,Telafi Bırakma Talebi, Leave Allocation,İzin Tahsisi, @@ -6478,43 +6478,43 @@ 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önderiminde, -Reminder,hatırlama, -Daily Work Summary Group User,Günlük Çalışma Özet Grubu Kullanıcısı, +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,izin engel listesi, -Days for which Holidays are blocked for this department.,Bu çıkış için tatillerin kaldırıldığı günler., +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,Gider Onaylayan, +Expense Approver,Gider Approver, Department Approver,Bölüm Onaycısı, Approver,Onaylayan, Required Skills,İstenen yetenekler, Skills,Beceri, Designation Skill,Atama Becerisi, Skill,Beceri, -Driver,Şoför, +Driver,sürücü, HR-DRI-.YYYY.-,HR-DRI-.YYYY.-, Suspended,Askıya alındı, -Transporter,Nakliyeci, +Transporter,Taşıyıcı, Applicable for external driver,Harici sürücü için geçerli, -Cellphone Number,Cep Telefonu Numarası, -License Details,Ehliyet Bilgileri, -License Number,Ehliyet Numarası, +Cellphone Number,cep telefonu numarası, +License Details,Lisans Bilgileri, +License Number,Lisans numarası, Issuing Date,Veriliş tarihi, -Driving License Categories,Ehliyet Kategorileri, -Driving License Category,Ehliyet Kategorisi, +Driving License Categories,Sürücü Belgesi Kategorileri, +Driving License Category,Sürücü Belgesi Kategorisi, Fleet Manager,Filo Yöneticisi, -Driver licence class,Ehliyet Sınıfı, -HR-EMP-,İK-EMP-, +Driver licence class,Ehliyet sınıfı, +HR-EMP-,HR-EMP-, Employment Type,İstihdam Tipi, Emergency Contact,Acil Durum İrtibat Kişisi, Emergency Contact Name,Acil Durum İletişim Adı, Emergency Phone,Acil Telefon, ERPNext User,ERPNext Kullanıcı, -"System User (login) ID. If set, it will become default for all HR forms.","Sistem kullanıcı (giriş) kimliği, bütün İK formları için geçerli olacaktır.", +"System User (login) ID. If set, it will become default for all HR forms.","Sistem kullanıcı (giriş) kimliği, bütün İK formları için varsayılan olacaktır", Create User Permission,Kullanıcı İzni Yarat, -This will restrict user access to other employee records,"Bu, diğer çalışan kayıtlarına kullanıcı erişimlerini kısıtlamalar", +This will restrict user access to other employee records,"Bu, diğer çalışan kayıtlarına kullanıcı erişimini kısıtlar", Joining Details,Ayrıntıları Birleştirme, Offer Date,Teklif Tarihi, Confirmation Date,Onay Tarihi, @@ -6522,10 +6522,10 @@ Contract End Date,Sözleşme Bitiş Tarihi, Notice (days),Bildirimi (gün), Date Of Retirement,Emeklilik Tarihiniz, Department and Grade,Bölüm ve sınıf, -Reports to,raporlar, +Reports to,Raporlar, 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 etiket numarası), +Attendance Device ID (Biometric/RF tag ID),Seyirci Cihaz Kimliği (Biyometrik / RF etiketi numarası), Applicable Holiday List,Uygulanabilir Tatil Listesi, Default Shift,Varsayılan Vardiya, Salary Details,Maaş Ayrıntıları, @@ -6533,29 +6533,29 @@ Salary Mode,Maaş Modu, Bank A/C No.,Banka Hesap No., Health Insurance,Sağlık Sigortası, Health Insurance Provider,Sağlık Sigortası Sağlayıcısı, -Health Insurance No,Sağlık Sigortası No, +Health Insurance No,Sağlık Sigortası Hayır, Prefered Email,Tercih edilen e-posta, Personal Email,Kişisel E-posta, -Permanent Address Is,kKlıcı Adres, +Permanent Address Is,Kalıcı Adres, Rented,Kiralanmış, -Owned,Sahipli, -Permanent Address,Kalıcı Adres, +Owned,Hisseli, +Permanent Address,Daimi Adres, Prefered Contact Email,Tercih Edilen E-posta İletişim, Company Email,Şirket e-posta, -Provide Email Address registered in company,şirket şirket E-posta Adresi bağlantısı, -Current Address Is,Güncel Adres, -Current Address,Mevcut Adres, +Provide Email Address registered in company,şirketin kayıtlı E-posta Adresi sağlayın, +Current Address Is,Güncel Adresi, +Current Address,Mevcut Adresi, Personal Bio,Kişisel biyo, Bio / Cover Letter,Biyo / Kapak Mektubu, Short biography for website and other publications.,Web sitesi ve diğer yayınlar için kısa biyografi., Passport Number,Pasaport Numarası, Date of Issue,Veriliş tarihi, Place of Issue,Verildiği yer, -Widowed,sıkıcı, +Widowed,Dul, Family Background,Aile Geçmişi, -"Here you can maintain family details like name and occupation of parent, spouse and children","Burada ebeveyn, eş ve Avrupalıların isim ve meslekleri gibi aile özelliklerini muhafaza edebilir", +"Here you can maintain family details like name and occupation of parent, spouse and children","Burada ebeveyn, eş ve çocukların isim ve meslek gibi aile ayrıntıları muhafaza edebilirsiniz", Health Details,Sağlık Bilgileri, -"Here you can maintain height, weight, allergies, medical concerns etc","Burada boy, kilo, bakımı, bakım endişeleri vb muhafaza edebilirsiniz", +"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ış Çalışma Geçmişi, @@ -6573,37 +6573,37 @@ Claimed,İddia Edilen, Advance Account,Peşin Hesap, Employee Attendance Tool,Çalışan Seyirci Aracı, Unmarked Attendance,Işaretsiz Seyirci, -Employees HTML,"çalışanlar, HTML", +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, +Employee Benefit Application,Çalışanlara Sağlanan Fayda, Max Benefits (Yearly),Maksimum Faydalar (Yıllık), Remaining Benefits (Yearly),Kalan Faydalar (Yıllık), Payroll Period,Bordro Dönemi, -Benefits Applied,Uygulama Faydaları, +Benefits Applied,Uygulanan Faydalar, Dispensed Amount (Pro-rated),Dağıtım Miktarı (Pro dereceli), -Employee Benefit Application Detail,çalışanlara Sağlanan Fayda Uygulama Detayı, -Earning Component,Kazanç Bileşenleri, +Employee Benefit Application Detail,Çalışanlara Sağlanan Fayda Uygulama Detayı, +Earning Component,Kazanç Bileşeni, Pay Against Benefit Claim,Fayda Talebine Karşı Ödeme, Max Benefit Amount,Maksimum Fayda Tutarı, -Employee Benefit Claim,çalışanlara Sağlanan Fayda Talebi, +Employee Benefit Claim,Çalışanlara Sağlanan Fayda Talebi, Claim Date,Talep Tarihi, Benefit Type and Amount,Fayda Türü ve Tutarı, -Claim Benefit For,Hak talebi, +Claim Benefit For,Için hak talebi, Max Amount Eligible,Maksimum Tutar, -Expense Proof,Gidermek, +Expense Proof,Gider kanıtı, Employee Boarding Activity,Çalışan Yatılı Etkinliği, -Activity Name,Faaliyet Adı, -Task Weight,Görev Ağırlığı, +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,Çalışan Checkin, Log Type,Günlük Tipi, OUT,DIŞARI, Location / Device ID,Konum / Cihaz Kimliği, -Skip Auto Attendance,Otomatik Devamı, +Skip Auto Attendance,Otomatik Devamı Atla, Shift Start,Vardiya Başlangıcı, -Shift End,vardiya sonu, +Shift End,Vardiya sonu, Shift Actual Start,Vardiya Gerçek Başlangıç, Shift Actual End,Vardiya Sonu, Employee Education,Çalışan Eğitimi, @@ -6622,57 +6622,57 @@ Employee Group Table,Çalışan Grup Masası, ERPNext User ID,ERPNext Kullanıcı Kimliği, Employee Health Insurance,Çalışan Sağlık Sigortası, Health Insurance Name,Sağlık Sigortası Adı, -Employee Incentive,Çalışan Teşvik, +Employee Incentive,Çalışan Teşviki, Incentive Amount,Teşvik Tutarı, Employee Internal Work History,Çalışan Dahili İş Geçmişi, -Employee Onboarding,Çalışan Gemide, -Notify users by email,Kullanıcıları e-postayla bilgilendirin, +Employee Onboarding,Çalışan Onboard, +Notify users by email,Kullanıcıları e-postayla bilgilendir, Employee Onboarding Template,Çalışan Onboard Şablonu, -Activities,faaliyetler, +Activities,Faaliyetler, 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 Tanıtım Detayı, +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,Çalışan Beceri, Proficiency,yeterlik, -Evaluation Date,değerlendirme tarihi, +Evaluation Date,Değerlendirme tarihi, Employee Skill Map,Çalışan Beceri Haritası, Employee Skills,Çalışan Becerileri, -Trainings,eğitimciler, +Trainings,Eğitimler, Employee Tax Exemption Category,Çalışan Vergisi İstisnası Kategorisi, Max Exemption Amount,Maksimum Muafiyet Tutarı, Employee Tax Exemption Declaration,Çalışan Vergisi İstisnası Beyanı, Declarations,Beyannameler, -Total Declared Amount,Toplam Beyan Tutarı, +Total Declared Amount,Toplam Beyan Tutar, Total Exemption Amount,Toplam Muafiyet Tutarı, Employee Tax Exemption Declaration Category,Çalışan Vergisi İstisna Beyannamesi Kategorisi, -Exemption Sub Category,Muafiyet Alt 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,Çalışan Vergi Muafiyeti Proof Sunumu, -Submission Date,teslim tarihi, +Submission Date,Teslim tarihi, Tax Exemption Proofs,Vergi Muafiyet İspatları, Total Actual Amount,Toplam Gerçek Tutar, -Employee Tax Exemption Proof Submission Detail,Çalışan Vergi Muafiyeti Prova 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,Çalışan Vergi Muafiyeti Alt Kategorisi, Tax Exemption Category,Vergi Muafiyet Kategorisi, -Employee Training,çalışan eğitim, -Training Date,eğitim tarihi, -Employee Transfer,çalışan transfer, -Transfer Date,transfer tarihi, +Employee Training,Çalışan eğitimi, +Training Date,Eğitim tarihi, +Employee Transfer,Çalışan Transferi, +Transfer Date,Transfer tarihi, Employee Transfer Details,Çalışan Transfer Detayları, Employee Transfer Detail,Çalışan Transfer Detayı, -Re-allocate Leaves,İzinler yeniden ayır, +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, @@ -6680,14 +6680,14 @@ 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 Alınan Tutar, -Total Amount Reimbursed,Toplam Tutar Geri Çekenler, -Vehicle Log,araç girişi, -Employees Email Id,çalışanların e-posta adresleri, +Total Claimed Amount,Toplam İade edilen Tutar, +Total Amount Reimbursed,Toplam Tutar Geri ödenen, +Vehicle Log,araç Giriş, +Employees Email Id,Çalışanların e-posta adresleri, More Details,Daha fazla detay, Expense Claim Account,Gider Talep Hesabı, Expense Claim Advance,Gider Talep İlerlemesi, -Unclaimed amount,Talep edilmeyen tutarlar, +Unclaimed amount,Talep edilmeyen tutar, Expense Claim Detail,Gideri Talebi Detayı, Expense Date,Gider Tarih, Expense Claim Type,Gideri Talebi Türü, @@ -6695,185 +6695,185 @@ Holiday List Name,Tatil Listesi Adı, Total Holidays,Toplam Tatiller, Add Weekly Holidays,Haftalık Tatilleri Ekle, Weekly Off,Haftalık İzin, -Add to Holidays,tatillere ekle, +Add to Holidays,Tatillere ekle, Holidays,Bayram, Clear Table,Temizle Tablo, HR Settings,İK Ayarları, Employee Settings,Çalışan Ayarları, Retirement Age,Emeklilik yaşı, -Enter retirement age in years,yaşlılar emeklilik yaşına girin, +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'nde Harcama Uygunluğu, Payroll Settings,Bordro Ayarları, 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ünü sayısı tatilleri içeriğitir ve bu da Günlük ücret düşecektir", -"If checked, hides and disables Rounded Total field in Salary Slips","İşaretlenirse, Maaş Fişlerindeki Yuvarlatılmış Toplam oda gizler ve devre dışı bırakır", -The fraction of daily wages to be paid for half-day attendance,Yarım gün devam için ödenecek günlük masrafın oranı, +"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", +"If checked, hides and disables Rounded Total field in Salary Slips","İşaretlenirse, Maaş Fişlerindeki Yuvarlatılmış Toplam alanını gizler ve devre dışı bırakır", +The fraction of daily wages to be paid for half-day attendance,Yarım gün devam için ödenecek günlük ücretlerin oranı, Email Salary Slip to Employee,Çalışan e-posta Maaş Kayma, -Emails salary slip to employee based on preferred email selected in Employee,Çalışan tarafından tercih edilen e-posta tabanlı çalışana e-postalar maaş kayması, +Emails salary slip to employee based on preferred email selected in Employee,Çalışan seçilen tercih edilen e-posta dayalı çalışana e-postalar maaş kayma, Encrypt Salary Slips in Emails,E-postalardaki Maaş Notlarını Şifrele, -"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 koruyucu olacak, şifre şifre politikasına göre üretilecektir.", +"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ı, Example: SAL-{first_name}-{date_of_birth.year}
This will generate a password like SAL-Jane-1972,Örnek: SAL- {first_name} - {date_of_birth.year}
Bu SAL-Jane-1972 gibi bir şifre üretecek, -Leave Settings,İzin Ayarları, -Leave Approval Notification Template,İzin Onay Bildirimi Ş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, +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şluğu Kontrol Edin, -Identification Document Type,Kimlik Belgesi Türü, +Check Vacancies On Job Offer Creation,İş Teklifi Oluşturma İşleminde Boşlukları Kontrol Edin, +Identification Document Type,Kimlik Belge Türü, Effective from,İtibaren geçerli, Allow Tax Exemption,Vergi Muafiyetine İzin Ver, -"If enabled, Tax Exemption Declaration will be considered for income tax calculation.","Etkinleştirilirse, Vergi Muafiyeti Beyanı, gelir vergisi hesaplaması için dikkate alınması.", +"If enabled, Tax Exemption Declaration will be considered for income tax calculation.","Etkinleştirilirse, Vergi Muafiyeti Beyanı, gelir vergisi hesaplaması için dikkate alınacaktır.", Standard Tax Exemption Amount,Standart Vergi Muafiyeti Tutarı, Taxable Salary Slabs,Vergilendirilebilir Maaş Levhaları, Taxes and Charges on Income Tax,Gelir Vergisi Üzerindeki Vergiler ve Masraflar, Other Taxes and Charges,Diğer Vergiler ve Masraflar, Income Tax Slab Other Charges,Gelir Vergisi Levhası Diğer Masraflar, -Min Taxable Income,Asgari Vergiye Tabi Gelir, +Min Taxable Income,Minimum Vergiye Tabi Gelir, Max Taxable Income,Maksimum Vergilendirilebilir Gelir, -Applicant for a Job,İş için bir gün, -Accepted,Kabül Edildi, +Applicant for a Job,İş için aday, +Accepted,Kabul Edilmiş, Job Opening,İş Açılışı, Cover Letter,Ön yazı, -Resume Attachment,Devam Anlatımı, +Resume Attachment,Devam Eklenti, Job Applicant Source,İş Başvurusu Kaynağı, Applicant Email Address,Başvuru Sahibinin E-posta Adresi, Awaiting Response,Cevap Bekliyor, -Job Offer Terms,İş Teklifi Hükümleri, +Job Offer Terms,İş Teklifi Koşulları, Select Terms and Conditions,Şartlar ve Koşulları Seç, -Printing Details,Baskı Detayları, +Printing Details,Baskı Detaylar, Job Offer Term,İş Teklifi Süresi, -Offer Term,Teklif Dönemi, +Offer Term,Teklif Dönem, Value / Description,Değer / Açıklama, Description of a Job Opening,İş Açılış Açıklaması, Job Title,İş Unvanı, -Staffing Plan,Kişisel tesis, +Staffing Plan,Personel planı, Planned number of Positions,Planlanan Pozisyon Sayısı, -"Job profile, qualifications required etc.","İş Profili, gerekli nitelikler vb.", +"Job profile, qualifications required etc.","İş Profili, gerekli nitelikler vb", HR-LAL-.YYYY.-,HR-LAL-.YYYY.-, Allocation,Tahsis, New Leaves Allocated,Tahsis Edilen Yeni İzinler, -Add unused leaves from previous allocations,Önceki ödeneklerden çalıştırman izinleri ekle, -Unused leaves,Kullanılmayan İzinler, -Total Leaves Allocated,Ayrılan Toplam İzinler, -Total Leaves Encashed,Toplam İzin Paraya çevrilen, -Leave Period,İzin Dönemi, -Carry Forwarded Leaves,Devreden İzinler, -Apply / Approve Leaves,İzinleri Onayla / Uygula, +Add unused leaves from previous allocations,Önceki tahsislerden kullanılmayan izinleri ekle, +Unused leaves,Kullanılmayan yapraklar, +Total Leaves Allocated,Ayrılan toplam izinler, +Total Leaves Encashed,Toplam Yapraklar Encashed, +Leave Period,Dönme Süresi, +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 İzin Günü, -Leave Approver Name,Onaylayan Adı bırak, +Total Leave Days,Toplam bırak Günler, +Leave Approver Name,Onaylayan Adı bırakın, Follow via Email,E-posta ile takip, -Block Holidays on important days.,Önemli günler Blok Tatil., -Leave Block List Name,izin engel listesi adı, +Block Holidays on important days.,Önemli günlerde Blok Tatil., +Leave Block List Name,İzin engel listesi adı, Applies to Company,Şirket için geçerli, -"If not checked, the list will have to be added to each Department where it has to be applied.","İşaretliyse, listelenmesi gereken her Departmana eklenmelidir", +"If not checked, the list will have to be added to each Department where it has to be applied.","İşaretli değilse, liste uygulanması gereken her Departmana eklenmelidir", Block Days,Blok Gün, -Stop users from making Leave Applications on following days.,Kullanıcıların şu günlerinde izinleri engelle., -Leave Block List Dates,izin engel listesi süreleri, +Stop users from making Leave Applications on following days.,Kullanıcıların şu günlerde İzin almasını engelle., +Leave Block List Dates,İzin engel listesi tarihleri, Allow Users,Kullanıcılara izin ver, Allow the following users to approve Leave Applications for block days.,Blok günleri için aşağıdaki kullanıcıların izin uygulamalarını onaylamasına izin ver., Leave Block List Allowed,Müsaade edilen izin engel listesi, -Leave Block List Allow,İzin engel listesini sürdürür, +Leave Block List Allow,İzin engel listesi müsaade eder, Allow User,Kullanıcıya izin ver, -Leave Block List Date,izin engel listesi tarihi, -Block Date,Blok Tarihi, +Leave Block List Date,İzin engel listesi tarihi, +Block Date,Blok Tarih, Leave Control Panel,İzin Kontrol Paneli, -Select Employees,Seçin çalışanlar, +Select Employees,Seçin Çalışanlar, Employment Type (optional),İstihdam Tipi (isteğe bağlı), Branch (optional),Şube (isteğe bağlı), Department (optional),Bölüm (isteğe bağlı), 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,İzinleri Tahsis et, +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ılı dahil etmek isterseniz Lütfen İleri Taşıyı seçin, +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, -Leave Balance,İzin Bakiyesi, -Encashable days,kapanabilir günler, +Allocate,Atama yap, +Leave Balance,Denge Bırak, +Encashable days,Kapanabilir günler, Encashment Amount,Muhafaza Tutarı, Leave Ledger Entry,Defter Girişini Bırakın, Transaction Name,İşlem Adı, -Is Carry Forward,ileri taşınmış, -Is Expired,süresi doldu, +Is Carry Forward,İleri taşınmış, +Is Expired,Süresi doldu, Is Leave Without Pay,Pay Yapmadan mı, Holiday List for Optional Leave,İsteğe Bağlı İzin İçin Tatil Listesi, Leave Allocations,Tahsisleri Bırak, -Leave Policy Details,İzin Politikası Ayrıntıları, -Leave Policy Detail,İzin Politika Ayrıntısı, +Leave Policy Details,İlke Ayrıntılarını Bırak, +Leave Policy Detail,Politika Ayrıntısından Ayrıl, Annual Allocation,Yıllık Tahsis, Leave Type Name,İzin Tipi Adı, -Max Leaves Allowed,İzin sınırı Maksimum Yaprak, +Max Leaves Allowed,İzin Verilen Maksimum Yaprak, Applicable After (Working Days),Uygulanabilir sonra (iş günü), Maximum Continuous Days Applicable,Maksimum Sürekli Günler Uygulanabilir, -Is Optional Leave,İsteğe bağlı bırakılıyor, +Is Optional Leave,İsteğe Bağlı Bırakılıyor, Allow Negative Balance,Negatif bakiyeye izin ver, -Include holidays within leaves as leaves,Tatilleri izinlere izin olarak dahil et, +Include holidays within leaves as leaves,Yapraklar gibi yaprakları içinde tatil dahil, Is Compensatory,Telafi Edicidir, -Maximum Carry Forwarded Leaves,Maksimum Devredilen İzin, -Expire Carry Forwarded Leaves (Days),Devredilen İzinlerin Sona Ermesi (Gün), -Calculated in days,Gün olarak hesaplandı, -Encashment,Paraya çevir, -Allow Encashment,Paraya çevirmeye İzin Ver, -Encashment Threshold Days,Para Çevirme Eşik Günü, -Earned Leave,Kazanılan İzin, -Is Earned Leave,Kazanılmış İzin, -Earned Leave Frequency,Kazanılmış İzin Frekansı, -Rounding,Yuvarlatma, +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, +Encashment Threshold Days,Muhafaza Eşiği Günleri, +Earned Leave,Kazanılan izin, +Is Earned Leave,Kazanılmış izin, +Earned Leave Frequency,Kazanılmış Bırakma Frekansı, +Rounding,yuvarlatma, Payroll Employee Detail,Bordro Çalışan Ayrıntısı, Payroll Frequency,Bordro Frekansı, -Fortnightly,iki hafta bir, +Fortnightly,iki haftada bir, Bimonthly,İki ayda bir, -Employees,çalışanlar, +Employees,Çalışanlar, 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 dayalı maaş Kayma, +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 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, -Select Payment Account to make Bank Entry,Banka Kaydı yapmak için Ödeme Hesabı Seç, -Salary Slips Created,Maaş Balıkları Oluşturuldu, -Salary Slips Submitted,Maaş Balıkları Gönderildi, +Select Payment Account to make Bank Entry,Seç Ödeme Hesabı Banka girişi yapmak için, +Salary Slips Created,Maaş Fişleri Oluşturuldu, +Salary Slips Submitted,Maaş Fişleri Gönderildi, Payroll Periods,Bordro Dönemleri, Payroll Period Date,Bordro Dönemi Tarihi, -Purpose of Travel,seyahat amacı, +Purpose of Travel,Seyahat amacı, Retention Bonus,Tutma Bonusu, Bonus Payment Date,Bonus Ödeme Tarihi, Bonus Amount,Bonus Tutarı, Abbr,Kısaltma, Depends on Payment Days,Ödeme Günlerine bağlıdır, -Is Tax Applicable,Vergi uygulanabilir mi, -Variable Based On Taxable Salary,Vergilendirilebilir Maaşlara Günlük kullanım, +Is Tax Applicable,Vergi Uygulanabilir mi, +Variable Based On Taxable Salary,Vergilendirilebilir Maaşlara Dayalı Değişken, Exempted from Income Tax,Gelir Vergisinden Muaf, Round to the Nearest Integer,En Yakın Tamsayıya Yuvarlak, -Statistical Component,İstatistiksel Bileşenler, -"If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. ","Seçilirse, bu bilgiler içinde belirtilen veya hesaplanan değer kazancı veya kesintilere katılmaz. Bununla birlikte, bu değer, eklenebilecek veya düşülebilecek diğer verim tarafından referans alınır.", +Statistical Component,İstatistiksel Bileşen, +"If selected, the value specified or calculated in this component will not contribute to the earnings or deductions. However, it's value can be referenced by other components that can be added or deducted. ","Seçilirse, bu bileşen içinde belirtilen veya hesaplanan değer kazanç veya kesintilere katkıda bulunmaz. Bununla birlikte, bu değer, eklenebilecek veya düşülebilecek diğer bileşenler tarafından referans alınabilir.", Do Not Include in Total,Toplam İçerme, -Flexible Benefits,esnek faydalar, -Is Flexible Benefit,esnek Fayda mı, +Flexible Benefits,Esnek Faydalar, +Is Flexible Benefit,Esnek Fayda mı, Max Benefit Amount (Yearly),Maksimum Fayda Tutarı (Yıllık), Only Tax Impact (Cannot Claim But Part of Taxable Income),"Sadece Vergi Etkisi (Talep Edilemez, Vergilendirilebilir Gelirin Bir Parçası)", Create Separate Payment Entry Against Benefit Claim,Fayda Talebine Karşı Ayrı Ödeme Girişi Yaratın, Condition and Formula,Durum ve Formül, Amount based on formula,Tutar formüle dayalı, -Formula,formüller, +Formula,formül, Salary Detail,Maaş Detay, -Component,Bileşenler, -Do not include in total,Toplamda yer alma, +Component,Bileşen, +Do not include in total,Toplamda yer almama, Default Amount,Standart Tutar, -Additional Amount,ek miktar, -Tax on flexible benefit,esnek fayda vergisi, -Tax on additional salary,ek maaş vergisi, +Additional Amount,Ek miktar, +Tax on flexible benefit,Esnek fayda vergisi, +Tax on additional salary,Ek maaş vergisi, Salary Structure,Maaş Yapısı, Working Days,Çalışma Günleri, Salary Slip Timesheet,Maaş Kayma Zaman Çizelgesi, @@ -6890,10 +6890,10 @@ Total Interest Amount,Toplam Faiz Tutarı, Total Loan Repayment,Toplam Kredi Geri Ödeme, net pay info,net ücret bilgisi, Gross Pay - Total Deduction - Loan Repayment,Brüt Ücret - Toplam Kesintisi - Kredi Geri Ödeme, -Total in words,Yazıyla Toplam, -Net Pay (in words) will be visible once you save the Salary Slip.,Net Ödeme (Yazıyla) Maaş Makbuzunu kaydettiğinizde başarma, -Salary Component for timesheet based payroll.,zaman girerken bina bordrosu için maaş Bileşeni., -Leave Encashment Amount Per Day,Gündem Muhafaza Miktarını Bırak, +Total in words,Sözlü Toplam, +Net Pay (in words) will be visible once you save the Salary Slip.,Net Ödeme (sözlü) Maaş Makbuzunu kaydettiğinizde görünecektir, +Salary Component for timesheet based payroll.,zaman çizelgesi tabanlı bordro için maaş Bileşeni., +Leave Encashment Amount Per Day,Günde Muhafaza Miktarını Bırak, Max Benefits (Amount),Maksimum Faydalar (Tutar), Salary breakup based on Earning and Deduction.,Kazanç ve Kesintiye göre Maaş Aralığı., Total Earning,Toplam Kazanç, @@ -6902,35 +6902,35 @@ Shift Assignment,Vardiya Atama, 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'e araştırmaya dayalı., +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., 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,Çalışan Kesinlikle Checkin'de Günlük Tipine Göre, +Strictly based on Log Type in Employee Checkin,Kesinlikle Çalışan Checkin'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 Oğul Check-out, -Every Valid Check-in and Check-out,Her yürütme Giriş ve Çıkış, -Begin check-in before shift start time (in minutes),Vardiya başlama zamanından önce check-ine başlama (dakika olarak), -The time before the shift start time during which Employee Check-in is considered for attendance.,Çalışan Check-in'e giriş için alındığı vardiya başlama saatinden önceki zaman., +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., 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, -Working hours below which Half Day is marked. (Zero to disable),Yarım günün işaretlendiği çalışma saatleri. (Devre dışı için sıfır), +Working hours below which Half Day is marked. (Zero to disable),Yarım Günün işaretlendiği çalışma saatleri. (Devre dışı bırakmak için sıfır), Working Hours Threshold for Absent,Devamsızlık için Çalışma Saatleri Eşiği, -Working hours below which Absent is marked. (Zero to disable),Devamsız işaretli çalışma saatleri. (Devre dışı için sıfır), +Working hours below which Absent is marked. (Zero to disable),Devamsız işaretli çalışma saatleri. (Devre dışı bırakmak için sıfır), Process Attendance After,İşlem Sonrasına Devam Etme, -Attendance will be marked automatically only after this date.,Katılım bu giriş daha sonra otomatik olarak işaretlenecektir., +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 En Son Başarılı Başarılı Senkronizasyonu. Bunu, yalnızca Kayıtların tüm konumlardan entegre olarak kendinizden 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'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, -The time after the shift start time when check-in is considered as late (in minutes).,Check-in işlemlerinden sonraki saat geç (dakika olarak) olarak kabul edilir., +The time after the shift start time when check-in is considered as late (in minutes).,Check-in işleminin başlangıçtan sonraki zamanı geç (dakika olarak) olarak kabul edilir., Enable Exit Grace Period,Grace Dönemi Çıkışını Etkinleştir, -Early Exit Grace Period,Erken Grace Çıkış Dönemi, -The time before the shift end time when check-out is considered as early (in minutes).,Check-out işleminin erken olduğu ve bir önceki süre (dakika olarak)., +Early Exit Grace Period,Erken Çıkış Grace Dönemi, +The time before the shift end time when check-out is considered as early (in minutes).,Check-out işleminin erken olduğu andan önceki süre (dakika olarak)., Skill Name,Beceri Adı, -Staffing Plan Details,Kadro Planı Detayları, +Staffing Plan Details,Kadro Plan Detayları, Staffing Plan Detail,Kadro Planı Detayı, Total Estimated Budget,Toplam Tahmini Bütçe, Vacancies,Açık İşler, @@ -6939,9 +6939,9 @@ Total Estimated Cost,Toplam Tahmini Maliyeti, Current Count,Mevcut Sayım, Current Openings,Mevcut Açıklıklar, Number Of Positions,Pozisyon Sayısı, -Taxable Salary Slab,Vergilendirilebilir Maaş Döşeme, +Taxable Salary Slab,Vergilendirilebilir Maaş Slab, From Amount,Miktardan, -To Amount,tutarına, +To Amount,Tutarına, Percent Deduction,Yüzde kesinti, Training Program,Eğitim programı, Event Status,Etkinlik Durumu, @@ -6949,231 +6949,231 @@ Has Certificate,Sertifikalı, Seminar,seminer, Theory,teori, Workshop,Atölye, -Conference,konferans, -Exam,sınavı, -Internet,İnternet, +Conference,Konferans, +Exam,sınav, +Internet,Internet, Self-Study,Bireysel çalışma, -Advance,İletmek, +Advance,İlerlemek, Trainer Name,eğitmen Adı, Trainer Email,eğitmen E-posta, -Attendees,gönderici, +Attendees,katılımcılar, Employee Emails,Çalışan E-postaları, Training Event Employee,Eğitim Etkinlik Çalışan, Invited,davetli, Feedback Submitted,Geri Bildirim Ekleyen, -Optional,isteğe bağlı, +Optional,İsteğe bağlı, Training Result Employee,Eğitim Sonucu Çalışan, Travel Itinerary,Seyahat güzergahı, Travel From,Seyahat, Travel To,Seyahat, -Mode of Travel,seyahat şekli, -Flight,uçuş, +Mode of Travel,Seyahat şekli, +Flight,Uçuş, Train,Tren, -Taxi,taksi, -Rented Car,kiralanmış araba, +Taxi,Taksi, +Rented Car,Kiralanmış araba, Meal Preference,Yemek Tercihi, Vegetarian,Vejetaryen, Non-Vegetarian,Vejeteryan olmayan, -Gluten Free,glütensiz, +Gluten Free,Glütensiz, Non Diary,Günlük Olmayan, Travel Advance Required,Seyahat Öncesi Gerekli, Departure Datetime,Kalkış Datetime, -Arrival Datetime,Varış Tarihsaat, +Arrival Datetime,Varış Datetime, Lodging Required,Konaklama Gerekli, Preferred Area for Lodging,Konaklama için Tercih Edilen Alan, Check-in Date,Giriş Tarihi, -Check-out Date,tarihi kontrol et, -Travel Request,Seyahat istekleri, -Travel Type,seyahat türü, -Domestic,Domestic (Yerli), +Check-out Date,Tarihi kontrol et, +Travel Request,Seyahat isteği, +Travel Type,Seyahat türü, +Domestic,yerli, International,Uluslararası, Travel Funding,Seyahat Fonu, Require Full Funding,Tam Finansman Gerektir, -Fully Sponsored,tamamen Sponsorlu, +Fully Sponsored,Tamamen Sponsorlu, "Partially Sponsored, Require Partial Funding","Kısmen Sponsorlu, Kısmi Finansman Gerektirir", -Copy of Invitation/Announcement,Davetiye / Duyurunun kopyaları, +Copy of Invitation/Announcement,Davetiye / Duyurunun kopyası, "Details of Sponsor (Name, Location)","Sponsorun Detayları (İsim, Yer)", -Identification Document Number,Kimlik Belgesi Numarası, -Any other details,Diğer Ayrıntılar, +Identification Document Number,Kimlik Belge Numarası, +Any other details,Diğer detaylar, Costing Details,Maliyet Ayrıntıları, Costing,Maliyetlendirme, -Event Details,Etkinlik Detayları, +Event Details,etkinlik detayları, Name of Organizer,Organizatörün Adı, Address of Organizer,Organizatörün Adresi, Travel Request Costing,Seyahat Talebi Maliyeti, 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),Kilometre Sayacı Değeri (Son), -Acquisition Date,Alım Tarihi, -Chassis No,Şasi No, -Vehicle Value,Araç Değeri, +Odometer Value (Last),Sayaç Değeri (Son), +Acquisition Date,Edinme tarihi, +Chassis No,şasi No, +Vehicle Value,araç Değeri, Insurance Details,Sigorta Detayları, -Insurance Company,Sigorta Şirketi, -Policy No,Poliçe No, -Additional Details,Ek Detaylar, -Fuel Type,Yakıt Tipi, -Petrol,Benzin, +Insurance Company,Sigorta şirketi, +Policy No,Politika yok, +Additional Details,ek detaylar, +Fuel Type,Yakıt tipi, +Petrol,Petrol, Diesel,Dizel, Natural Gas,Doğal gaz, Electric,Elektrik, -Fuel UOM,Yakıt Birimi, -Last Carbon Check,Son Karbon Kontrolü, -Wheels,Tekerlek, -Doors,Kapı, +Fuel UOM,yakıt UOM, +Last Carbon Check,Son Karbon Kontrol, +Wheels,Tekerlekler, +Doors,Kapılar, HR-VLOG-.YYYY.-,HR-VLOG-.YYYY.-, -Odometer Reading,Kilometre Sayacı Okuması, +Odometer Reading,Kilometre sayacı okuma, Current Odometer value ,Geçerli Kilometre Sayacı değeri, last Odometer Value ,son Kilometre Sayacı Değeri, Refuelling Details,Yakıt Detayları, -Invoice Ref,Fatura Ref, +Invoice Ref,fatura Ref, Service Details,Hizmet Detayları, -Service Detail,Hizmet Detayı, -Vehicle Service,Araç Servis, -Service Item,Servis Öğe, +Service Detail,hizmet Detayı, +Vehicle Service,araç Servis, +Service Item,servis Öğe, Brake Oil,Fren Yağı, -Brake Pad,Fren Pedalı, +Brake Pad,Fren pedalı, Clutch Plate,Debriyaj Plakası, -Engine Oil,Motor Yağı, -Oil Change,Yağ Değişimi, -Inspection,Muayene, +Engine Oil,Motor yağı, +Oil Change,Yağ değişimi, +Inspection,muayene, Mileage,Kilometre, Hub Tracked Item,Hub İzlenen Öğe, Hub Node,Hub Düğüm, -Image List,Görüntü Listesi, +Image List,Görüntü listesi, Item Manager,Ürün Yöneticisi, -Hub User,Hub Kullanıcısı, +Hub User,Hub kullanıcısı, Hub Password,Hub Parolası, Hub Users,Hub Kullanıcıları, -Marketplace Settings,Pazar Yeri Ayarları, +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), +Marketplace URL (to hide and update label),Pazar yeri URL'si (etiketi gizlemek ve güncellemek için), Registered,Kayıtlı, -Sync in Progress,Senkronizasyon Devam Ediyor, +Sync in Progress,İlerleme devam ediyor, Hub Seller Name,Hub Satıcı Adı, -Custom Data,özel veri, -Member,Üye, -Partially Disbursed,Kısmen Ödeme yapılmış, +Custom Data,Özel veri, +Member,üye, +Partially Disbursed,Kısmen dönemlerde toplanan, Loan Closure Requested,Kredi Kapanışı İstendi, -Repay From Salary,Maaşdan Öde, -Loan Details,Kredi Detayları, -Loan Type,Kredi Türü, -Loan Amount,Kredi Tutarı, +Repay From Salary,Maaş dan ödemek, +Loan Details,kredi Detayları, +Loan Type,kredi Türü, +Loan Amount,Kredi miktarı, Is Secured Loan,Teminatlı Kredi, Rate of Interest (%) / Year,İlgi (%) / Yılın Oranı, -Disbursement Date,Masraf Tarihi, -Disbursed Amount,Masraf Harcama Tutarı, +Disbursement Date,Ödeme tarihi, +Disbursed Amount,Ödeme Tutarı, Is Term Loan,Vadeli Kredi, Repayment Method,Geri Ödeme Yöntemi, -Repay Fixed Amount per Period,Dönem başına Sabit Tutar Geri Ödeme, -Repay Over Number of Periods,Sürelerinin üzeri sayısı Geri Ödeme, -Repayment Period in Months,Aylar Geri içinde Ödeme Süresi, +Repay Fixed Amount per Period,Dönem başına Sabit Tutar Repay, +Repay Over Number of Periods,Sürelerinin Üzeri sayısı Repay, +Repayment Period in Months,Aylar içinde Geri Ödeme Süresi, Monthly Repayment Amount,Aylık Geri Ödeme Tutarı, Repayment Start Date,Geri Ödeme Başlangıç Tarihi, Loan Security Details,Kredi Güvenliği Detayları, Maximum Loan Value,Maksimum Kredi Değeri, Account Info,Hesap Bilgisi, -Loan Account,Kredi Hesabı, +Loan Account,Borç hesabı, Interest Income Account,Faiz Gelir Hesabı, -Penalty Income Account,Ceza Geliri Hesabı, -Repayment Schedule,Geri Ödeme Planı, +Penalty Income Account,Penaltı Gelir Hesabı, +Repayment Schedule,Geri Ödeme Plan, Total Payable Amount,Toplam Ödenecek Tutar, -Total Principal Paid,Toplam Ödenen Anapara, -Total Interest Payable,Toplam Ödenecek Faiz, -Total Amount Paid,Toplam Ödenen Tutar, -Loan Manager,Kredi Yöneticisi, -Loan Info,Kredi Bilgisi, -Rate of Interest,Faiz Oranı, -Proposed Pledges,Gelişmiş Rehinler, -Maximum Loan Amount,Maksimum Kredi Tutarı, +Total Principal Paid,Ödenen Toplam Anapara, +Total Interest Payable,Ödenecek Toplam Faiz, +Total Amount Paid,Toplamda ödenen miktar, +Loan Manager,Kredi Müdürü, +Loan Info,kredi Bilgisi, +Rate of Interest,Faiz oranı, +Proposed Pledges,Önerilen Rehinler, +Maximum Loan Amount,Maksimum Kredi Miktarı, Repayment Info,Geri Ödeme Bilgisi, -Total Payable Interest,Toplam Ödenecek Faiz, +Total Payable Interest,Toplam Ödenecek faiz, Against Loan ,Krediye Karşı, Loan Interest Accrual,Kredi Faiz Tahakkuku, -Amounts,Tutarlar, +Amounts,tutarlar, Pending Principal Amount,Bekleyen Anapara Tutarı, Payable Principal Amount,Ödenecek Anapara Tutarı, Paid Principal Amount,Ödenen Anapara Tutarı, Paid Interest Amount,Ödenen Faiz Tutarı, -Process Loan Interest Accrual,Kredi Faiz Tahakkuku Süreci, +Process Loan Interest Accrual,Süreç Kredisi Faiz Tahakkuku, Repayment Schedule Name,Geri Ödeme Planı Adı, -Regular Payment,Düzenli Ödeme, +Regular Payment,Düzenli ödeme, Loan Closure,Kredi Kapanışı, -Payment Details,Ödeme Detayları, -Interest Payable,Ödenecek Faiz, +Payment Details,Ödeme detayları, +Interest Payable,Ödenecek faiz, Amount Paid,Ödenen Tutar;, Principal Amount Paid,Ödenen Anapara Tutarı, Repayment Details,Geri Ödeme Ayrıntıları, Loan Repayment Detail,Kredi Geri Ödeme Detayı, Loan Security Name,Kredi Güvenlik Adı, -Unit Of Measure,Ölçü Birimi, +Unit Of Measure,Ölçü birimi, Loan Security Code,Kredi Güvenlik Kodu, Loan Security Type,Kredi Güvenlik Türü, -Haircut %,Saç Kesimi %, +Haircut %,Saç kesimi%, Loan Details,Kredi Detayları, -Unpledged,taahhütsüz, +Unpledged,Unpledged, Pledged,Rehin, Partially Pledged,Kısmen Rehin Verildi, 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ı, Security Value ,Güvenlik Değeri, -Process Loan Security Shortfall,Kredi Güvenlik Açığı Süreci, +Process Loan Security Shortfall,Süreç Kredisi Güvenlik Açığı, Loan To Value Ratio,Kredi / Değer Oranı, -Unpledge Time,Rehin Zamanı, -Loan Name,Kredi Adı, -Rate of Interest (%) Yearly,Yıllık Faiz Oranı (%), +Unpledge Time,Unpledge Zamanı, +Loan Name,kredi Ad, +Rate of Interest (%) Yearly,İlgi Oranı (%) Yıllık, Penalty Interest Rate (%) Per Day,Günlük Ceza Faiz Oranı (%), -Penalty Interest Rate is levied on the pending interest amount on a daily basis in case of delayed repayment ,"Gecikmeli geri ödeme durumunda, günlük olarak alınan faiz oranı tahakkuk eden faiz oranı alınır.", -Grace Period in Days,Gün olarak Ek Süre, -No. of days from due date until which penalty won't be charged in case of delay in loan repayment,"Kredi geri ödemesinde gecikme olması durumunda, vade kurallarından cezanın uygulanmayacağı gün sayısı", +Penalty Interest Rate is levied on the pending interest amount on a daily basis in case of delayed repayment ,"Gecikmeli geri ödeme durumunda, günlük olarak askıya alınan faiz oranı üzerinden tahakkuk eden faiz oranı alınır.", +Grace Period in Days,Gün İçi Ödemesiz Dönem, +No. of days from due date until which penalty won't be charged in case of delay in loan repayment,"Kredi geri ödemesinde gecikme olması durumunda, vade tarihinden itibaren cezanın uygulanmayacağı gün sayısı", Pledge,Rehin, Post Haircut Amount,Post Saç Kesimi Miktarı, Process Type,İşlem türü, -Update Time,Zamanı Güncelle, -Proposed Pledge,Yetenekli Rehin, -Total Payment,Toplam Ödeme, +Update Time,Güncelleme zamanı, +Proposed Pledge,Önerilen Rehin, +Total Payment,Toplam ödeme, Balance Loan Amount,Bakiye Kredi Miktarı, Is Accrued,Tahakkuk Edildi, Salary Slip Loan,Maaş Kaybı Kredisi, Loan Repayment Entry,Kredi Geri Ödeme Girişi, Sanctioned Loan Amount,Onaylanan Kredi Tutarı, Sanctioned Amount Limit,Onaylanan Tutar Sınırı, -Unpledge,Taahhüdü iptal et, -Haircut,Saç Kesimi, +Unpledge,Unpledge, +Haircut,saç kesimi, MAT-MSH-.YYYY.-,MAT-MSH-.YYYY.-, -Generate Schedule,Program Oluşturmanın, -Schedules,programlı, +Generate Schedule,Program Oluşturun, +Schedules,Programlar, Maintenance Schedule Detail,Bakım Programı Detayı, Scheduled Date,Program Tarihi, Actual Date,Gerçek Tarih, Maintenance Schedule Item,Bakım Programı Ürünü, Random,Rastgele, -No of Visits,ziyaret sayısı, +No of Visits,Ziyaret sayısı, MAT-MVS-.YYYY.-,MAT-MVS-.YYYY.-, -Maintenance Date,Bakım Tarihi, +Maintenance Date,Bakım Tarih, Maintenance Time,Bakım Zamanı, Completion Status,Tamamlanma Durumu, Partially Completed,Kısmen Tamamlandı, -Fully Completed,tamamen Tamamlanmış, -Unscheduled,planlanmamış, +Fully Completed,Tamamen Tamamlanmış, +Unscheduled,Plânlanmamış, Breakdown,Arıza, Purposes,Amaçları, Customer Feedback,Müşteri Görüşleri, -Maintenance Visit Purpose,Bakım ziyareti Amaç, -Work Done,İş Bitti, +Maintenance Visit Purpose,Bakım ziyareti Amacı, +Work Done,Yapılan İş, Against Document No,Karşılık Belge No., Against Document Detail No,Karşılık Belge Detay No., MFG-BLR-.YYYY.-,MFG-BLR-.YYYY.-, @@ -7181,25 +7181,25 @@ Order Type,Sipariş Türü, Blanket Order Item,Battaniye sipariş öğesi, 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,Belirli miktarlarda ham maddeden üretim / yeniden paketleme sonrasında elde edilen ürün miktarı, -Set rate of sub-assembly item based on BOM,BOM'a dayalı alt montaj malzemesinin ayarlarını ayarlama, +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ı 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 Fiyatı Şuna göre, -With Operations,Operasyonlar ile, +Conversion Rate,Dönüşüm oranı, +Rate Of Materials Based On,Dayalı Ürün Br. Fiyatı, +With Operations,Operasyon ile, Manage cost of operations,İşlem Maliyetlerini Yönetin, Transfer Material Against,Karşı Malzemeyi Aktar, -Routing,Rota, +Routing,Yönlendirme, Materials,Materyaller, 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, @@ -7208,173 +7208,173 @@ Materials Required (Exploded),Gerekli Malzemeler (patlamış), Exploded Items,Patlamış Öğeler, Show in Website,Web Sitesinde Göster, Item Image (if not slideshow),Ürün Görüntü (yoksa slayt), -Thumbnail,Thumbnail, +Thumbnail,Başparmak tırnağı, Website Specifications,Web Sitesi Özellikleri, -Show Items,Öğeler Göster, -Show Operations,Operasyonları Göster, +Show Items,göster Öğeler, +Show Operations,göster İşlemleri, 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,Orjinal Ürün, +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'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 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 ürün reçetelerinde en son fiyatı güncelleyin, +Update latest price in all BOMs,Tüm BOM'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, PO-JOB.#####,PO-İŞ. #####, -Timing Detail,Zamanlama Detayı, +Timing Detail,Zamanlama detay, Time Logs,Zaman Günlükleri, Total Time in Mins,Dakikada Toplam Süre, Operation ID,İşlem kimliği, Transferred Qty,Transfer Edilen Miktar, Job Started,İşe Başladı, -Started Time,Başlangıç Zamanı, -Current Time,Şimdiki Zaman, +Started Time,Başlangıç zamanı, +Current Time,Şimdiki zaman, Job Card Item,İş Kartı Öğesi, -Job Card Time Log,İş Kartı Zaman günlüğü, -Time In Mins,Süre dakika, +Job Card Time Log,İş kartı zaman günlüğü, +Time In Mins,Dakikalarda Zaman, Completed Qty,Tamamlanan Adet, Manufacturing Settings,Üretim Ayarları, 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,Tatilde Üretime izin ver, -Capacity Planning For (Days),Kapasite Planlama (Gün), +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,Varsayılan Yarı Mamul Deposu, -Default Finished Goods Warehouse,Varsayılan Mamul Deposu, +Default Work In Progress Warehouse,İlerleme Ambarlar'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 Fazla Üretim Yüzdesi, -Overproduction Percentage For Work Order,İş Emri İçin Fazla Üretim Yüzdesi, +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ı Kalemi, -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ı, -Default Workstation,Varsayılan İş İstasyonu, +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ı, MFG-PP-.YYYY.-,MFG-PP-.YYYY.-, -Get Items From,Öğeleri Al, -Get Sales Orders,Satış Şiparişlerini Getir, -Material Request Detail,Malzeme Talep Ayrıntısı, -Get Material Request,Malzeme Talebini Getir, -Material Requests,Malzeme Talepleri, -Get Items For Work Order,İş Emri İçin Ürünleri Al, -Material Request Planning,Malzeme Talep Planlaması, -Include Non Stock Items,Stokta olmayan Ürünleri Dahil Et, -Include Subcontracted Items,Taşerona verilmiş Ürünleri Dahil et, +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,Taahhütlü Öğeleri Dahil Et, Ignore Existing Projected Quantity,Mevcut Öngörülen Miktarı Yoksay, "To know more about projected quantity, click here.","Tahmini miktar hakkında daha fazla bilgi için, buraya tıklayın .", Download Required Materials,Gerekli Malzemeleri İndirin, Get Raw Materials For Production,Üretim İçin Hammaddeleri Alın, -Total Planned Qty,Toplam Planlanan Miktar, +Total Planned Qty,Toplam Planlanan Adet, Total Produced Qty,Toplam Üretilen Miktar, -Material Requested,Talep edilen Malzeme, +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, -material_request_item,malzeme_isteği_öğesi, -Product Bundle Item,Ürün Bundle Ögesi, +material_request_item,material_request_item, +Product Bundle Item,Ürün Paketi Ürün, Production Plan Material Request,Üretim Planı Malzeme Talebi, Production Plan Sales Order,Üretim Planı Satış Siparişi, Sales Order Date,Satış Sipariş Tarihi, Routing Name,Yönlendirme Adı, MFG-WO-.YYYY.-,MFG-WO-.YYYY.-, Item To Manufacture,Üretilecek Ürün, -Material Transferred for Manufacturing,Üretim için Aktarılan 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,Yarı Mamul Deposuna Malzeme Transferini Atla, -Check if material transfer entry is not required,Malzeme transfer girişinin gerekli olup olmadığını kontrol et, -Backflush Raw Materials From Work-in-Progress Warehouse,Devam eden depodaki hammaddelerin geri bilgileri, +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.,Hammaddelerin bulunduğu bir konumdur, -Work-in-Progress Warehouse,Yarı Maül Deposu, -This is a location where operations are executed.,Operasyonların yürütüldüğü bir konumdur., -This is a location where final product stored.,Nihai ürünün (mamülün) depolandığı bir konumdur., -Scrap Warehouse,Hurda Deposu, -This is a location where scraped materials are stored.,Hurdaya çıkan malzemelerin depolandığı bir konumdur., -Required Items,Gerekli Ürünler, +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, 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,Planlanan 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ı, -in Minutes,Dakika, -Actual Time and Cost,Gerçek Süre ve Maliyet, +in Minutes,Dakika içinde, +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, -Actual Operation Time,Gerçek Operasyon Süresi, +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 Operasyon Süresi, +(Hour Rate / 60) * Actual Operation Time,(Saat Hızı / 60) * Gerçek Çalışma Süresi, Workstation Name,İş İstasyonu Adı, -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 Ücreti, -Net Hour Rate,Net Saat Ücreti, -Workstation Working Hour,İş İstasyonu Operasyon Saati, +Wages per hour,Saatlik ücret, +Net Hour Rate,Net Saat Hızı, +Workstation Working Hour,İş İstasyonu Çalışma Saati, Certification Application,Sertifika Başvurusu, Name of Applicant,Başvuru sahibinin adı, Certification Status,Sertifika Durumu, -Yet to appear,Henüz görünmedi, -Certified,Sertifikalı, +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ı, +Name of Consultant,Danışmanın adı, Certification Validity,Belgelendirme geçerliliği, -Discuss ID,Kimliği tartışmak, +Discuss ID,Kimliği tartış, GitHub ID,GitHub Kimliği, Non Profit Manager,Kâr Dışı Müdür, Chapter Head,Bölüm Başkanı, @@ -7383,18 +7383,18 @@ chapters/chapter_name\nleave blank automatically set after saving chapter.,böl Chapter Members,Bölüm Üyeleri, Members,Üyeler, Chapter Member,Bölüm Üyesi, -Website URL,Web Sitesi URL'si, +Website URL,Website URL, Leave Reason,Nedenini Bırak, Donor Name,Donör Adı, Donor Type,Donör Türü, -Withdrawn,Çekilmiş, +Withdrawn,çekilmiş, Grant Application Details ,Hibe Başvurusu Ayrıntıları, -Grant Description,Hibe Açıklama, +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''), -Assessment Manager,Değerlendirme Yöneticisi, +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, @@ -7409,21 +7409,21 @@ 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ştirin, +Enable RazorPay For Memberships,Üyelikler İçin RazorPay'i Etkinleştir, RazorPay Settings,RazorPay Ayarları, -Billing Cycle,Faturalandırma, +Billing Cycle,Fatura döngüsü, Billing Frequency,Fatura Sıklığı, -"The number of billing cycles for which the customer should be charged. For example, if a customer is buying a 1-year membership that should be billed on a monthly basis, this value should be 12.","Müşterinin ücretlendirilmesi gereken faturalama döngülerinin sayısı. Örneğin, bir müşteri aylık olarak faturalandırılması gereken 1 yıllık bir üyelik satınalma içermelisa, bu değer 12 olmalıdır.", +"The number of billing cycles for which the customer should be charged. For example, if a customer is buying a 1-year membership that should be billed on a monthly basis, this value should be 12.","Müşterinin ücretlendirilmesi gereken faturalama döngülerinin sayısı. Örneğin, bir müşteri aylık olarak faturalandırılması gereken 1 yıllık bir üyelik satın alıyorsa, bu değer 12 olmalıdır.", Razorpay Plan ID,Razorpay Plan Kimliği, Volunteer Name,Gönüllülük Adı, -Volunteer Type,Gönüllü İpucu, +Volunteer Type,Gönüllü Tip, Availability and Skills,Kullanılabilirlik ve Beceriler, -Availability,kullanılabilirlik, -Weekends,hafta sonları, +Availability,Kullanılabilirlik, +Weekends,Hafta sonları, Availability Timeslot,Kullanılabilirlik Zaman Aralığı, Morning,Sabah, Afternoon,Öğleden sonra, -Evening,akşam, +Evening,Akşam, Anytime,İstediğin zaman, Volunteer Skills,Gönüllülük Becerileri, Volunteer Skill,Gönüllü Beceri, @@ -7432,8 +7432,8 @@ Hero Section Based On,Kahraman Bölümüne Dayalı, Homepage Section,Anasayfa Bölümü, Hero Section,Kahraman Bölümü, Tag Line,Etiket Hattı, -Company Tagline for website homepage,web tasarımı ana Şirket Sloganı, -Company Description for website homepage,web tasarımı ana Firma Açıklaması, +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, Products to be shown on website homepage,Ürünler web sitesi ana sayfasında gösterilecek, @@ -7442,64 +7442,64 @@ route,rota, Section Based On,Dayalı Bölüm, Section Cards,Bölüm Kartları, 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 içerseniz her satırda 3 kart gösterecek., +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'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 taşımalarını sıralayın. 0 birinci, 1 ikinci ve benzeri.", +"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ı, Subtitle,Alt yazı, -Products Settings,Ürün Ayarları, -Home Page is Products,Ana Sayfa Ürünler pozisyonudur, +Products Settings,Ürünler Ayarları, +Home Page is Products,Ana Sayfa Ürünler konumundadır, "If checked, the Home page will be the default Item Group for the website","Seçili ise, Ana sayfa web sitesi için varsayılan Ürün Grubu olacak", Show Availability Status,Uygunluk Durumunu Göster, Product Page,Ürün Sayfası, Products per Page,Sayfa Başına Ürünler, -Enable Field Filters,Alan Filtrelerini Etkinleştirin, +Enable Field Filters,Alan Filtrelerini Etkinleştir, Item Fields,Öğe Alanları, -Enable Attribute Filters,Öznitelik Filtrelerini Etkinleştirin, +Enable Attribute Filters,Öznitelik Filtrelerini Etkinleştir, Attributes,Nitelikler, Hide Variants,Varyantları Gizle, Website Attribute,Web Sitesi Özelliği, Attribute,Nitelik, Website Filter Field,Web Sitesi Filtre Alanı, -Activity Cost,Faaliyet Maliyeti, +Activity Cost,Etkinlik Maliyeti, Billing Rate,Fatura Oranı, Costing Rate,Maliyet Oranı, title,Başlık, -Projects User,Projeler Kullanıcısı, +Projects User,Projeler Kullanıcı, Default Costing Rate,Standart Maliyetlendirme Oranı, Default Billing Rate,Varsayılan Fatura Oranı, Dependent Task,Bağımlı Görev, Project Type,Proje Tipi, -% Complete Method,% Tamamlama Yöntemi, -Task Completion,Görev Tamamlama, -Task Progress,Görev İlerlemesi, -% Completed,% Tamamlandı, -From Template,Proje Şablonundan, -Project will be accessible on the website to these users,Proje internet siteleri şu kullanıcılar için erişilebilir olacak, +% Complete Method,% Tamamlandı Yöntem, +Task Completion,görev Tamamlama, +Task Progress,görev İlerleme, +% Completed,% Tamamlanan, +From Template,Şablondan, +Project will be accessible on the website to these users,Proje internet sitesinde şu kullanıcılar için erişilebilir olacak, Copied From,Kopyalanacak, -Start and End Dates,Başlangıç ve Tarihler Sonu, +Start and End Dates,Başlangıç ve Tarihler End, 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 İddiası (Gider Talepleri yoluyla), -Total Purchase Cost (via Purchase Invoice),Toplam Satınalma Maliyeti (Satınalma Fatura üzerinden), +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), -Gross Margin,Brut Marj, -Gross Margin %,Brüt Kar Marji%, -Monitor Progress,İlerlemeyi Görüntüle, -Collect Progress,İlerlemeyi Topla, +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 Girişi ile), +Gross Margin,Brüt Marj, +Gross Margin %,Brüt Kar Marjı%, +Monitor Progress,İzleme İlerlemesi, +Collect Progress,İlerlemeyi topla, Frequency To Collect Progress,İlerleme Sıklığı Frekansı, Twice Daily,Günde iki kez, First Email,İlk e-posta, Second Email,İkinci e-posta, -Time to send,Gönderim Zamanı, -Day to Send,Gönderim Günü, -Message will be sent to the users to get their status on the Project,Projedeki durumlarını öğrenmek için mesaj gönderilecektir., +Time to send,Gönderme zamanı, +Day to Send,Gönderilecek Gün, +Message will be sent to the users to get their status on the Project,Projedeki durumlarını öğrenmek için kullanıcılara mesaj gönderilecektir., Projects Manager,Proje Yöneticisi, Project Template,Proje Şablonu, Project Template Task,Proje Şablonu Görevi, @@ -7507,28 +7507,28 @@ Begin On (Days),Başla (Günler), Duration (Days),Süre (Günler), Project Update,Proje Güncellemesi, Project User,Proje Kullanıcısı, -View attachments,Ekleri Göster, -Projects Settings,Proje Ayarları, +View attachments,Ekleri görüntüle, +Projects Settings,Projeler Ayarları, Ignore Workstation Time Overlap,İş İstasyonu Zaman Çakışmasını Yoksay, -Ignore User Time Overlap,Kullanıcı Zaman Çakışmasını Yoksay, +Ignore User Time Overlap,Kullanıcı Zaman Çakışmalarını Yoksay, Ignore Employee Time Overlap,Çalışan Zamanı Çakışmasını Yoksay, Weight,Ağırlık, Parent Task,Ana Görev, -Timeline,Zaman cetveli, -Expected Time (in hours),Beklenen Zaman (Saat), -% Progress,İlerleme % Yüzdesi, -Is Milestone,Kilometre taşı, -Task Description,Görev Tanımı, +Timeline,Zaman çizelgesi, +Expected Time (in hours),(Saat) Beklenen Zaman, +% Progress,% İlerleme, +Is Milestone,Milestone mu?, +Task Description,Görev tanımı, Dependencies,Bağımlılıklar, Dependent Tasks,Bağımlı Görevler, Depends on Tasks,Görevler bağlıdır, Actual Start Date (via Time Sheet),Gerçek başlangış tarihi (Zaman Tablosu'ndan), Actual Time (in hours),Gerçek Zaman (Saat olarak), -Actual End Date (via Time Sheet),Gerçek bitiş tarihi (Zaman Tablosu'ndan), -Total Costing Amount (via Time Sheet),(Zaman Formu maliyeti) Toplam Maliyet Tutarı, -Total Expense Claim (via Expense Claim),(Gider İstem yoluyla) Toplam Gider İddiası, -Total Billing Amount (via Time Sheet),Toplam Fatura Tutarı (Zaman Tablosu yoluyla), -Review Date,inceleme tarihi, +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 İddiası, +Total Billing Amount (via Time Sheet),Toplam Fatura Tutarı (Zaman Sheet yoluyla), +Review Date,İnceleme tarihi, Closing Date,Kapanış Tarihi, Task Depends On,Görev Bağlıdır, Task Type,Görev Türü, @@ -7545,30 +7545,30 @@ Hrs,saat, Costing Amount,Maliyet Tutarı, Corrective/Preventive,Önleyici / Düzeltici, Corrective,Düzeltici, -Preventive,koruyucu, +Preventive,önleyici, Resolution,Karar, -Resolutions,Kararlar, +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, -Monitoring Frequency,Frekans izleme, +Quality Goal,Kalite hedefi, +Monitoring Frequency,Frekans İzleme, Weekday,çalışma günü, Objectives,Hedefler, Quality Goal Objective,Kalite Hedef Amaç, -Objective,amaç, +Objective,Amaç, Agenda,Gündem, -Minutes,Dakikalar, +Minutes,Dakika, Quality Meeting Agenda,Kalite Toplantı Gündemi, Quality Meeting Minutes,Kalite Toplantı Tutanakları, -Minute,Dakikalar, -Parent Procedure,yapı hükümleri, -Processes,süreçler, -Quality Procedure Process,Kalite hükümleriü Süreci, -Process Description,süreç anlatımı, -Link existing Quality Procedure.,Mevcut kalite hükümlerini birleştirme., -Additional Information,Ek Bilgi, -Quality Review Objective,Kalite incelemesi Amaç, +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ı, +Link existing Quality Procedure.,Mevcut Kalite Prosedürünü bağlayın., +Additional Information,ek bilgi, +Quality Review Objective,Kalite İnceleme Amaç, DATEV Settings,DATEV Ayarları, Regional,Bölgesel, Consultant ID,Danışman Kimliği, @@ -7579,17 +7579,17 @@ GST Summary,GST Özeti, GSTIN Email Sent On,GSTIN E-postayla Gönderildi, GST Accounts,GST Hesapları, B2C Limit,B2C Sınırı, -Set Invoice Value for B2C. B2CL and B2CS calculated based on this invoice value.,B2C için Fatura Değeri ayarı. Bu faturanın ödenmesinden itibaren B2CL ve B2CS'nin ödenmesi., +Set Invoice Value for B2C. B2CL and B2CS calculated based on this invoice value.,B2C için Fatura Değeri ayarlayın. Bu fatura değerine dayanarak B2CL ve B2CS hesaplanır., GSTR 3B Report,GSTR 3B Raporu, January,Ocak, February,Şubat, March,Mart, -April,nisan, +April,Nisan, May,Mayıs, June,Haziran, July,Temmuz, August,Ağustos, -September,eylül, +September,Eylül, October,Ekim, November,Kasım, December,Aralık, @@ -7597,168 +7597,168 @@ JSON Output,JSON Çıkışı, Invoices with no Place Of Supply,Tedarik Yeri Olmayan Faturalar, Import Supplier Invoice,Tedarikçi Faturasını İçe Aktar, Invoice Series,Fatura Serisi, -Upload XML Invoices,XML Faturalarını Yükleme, +Upload XML Invoices,XML Faturalarını Yükle, Zip File,Sıkıştırılmış dosya, Import Invoices,İthalat Faturaları, -Click on Import Invoices button once the zip file has been attached to the document. Any errors related to processing will be shown in the Error Log.,Zip dosyası belgeye eklendikten sonra Faturaları İçe Aktar düğmesine tıklayın. İşlemeyle ilgili tüm hatalar Hata Günlüğünde gösterilir., +Click on Import Invoices button once the zip file has been attached to the document. Any errors related to processing will be shown in the Error Log.,Zip dosyası belgeye eklendikten sonra Faturaları İçe Aktar düğmesini tıklayın. İşlemeyle ilgili tüm hatalar Hata Günlüğünde gösterilir., Lower Deduction Certificate,Düşük Kesinti Sertifikası, Certificate Details,Sertifika Ayrıntıları, 194A,194A, 194C,194C, 194D,194D, 194H,194H, -194I,194 ben, +194I,194I, 194J,194J, 194LA,194LA, 194LBB,194LBB, 194LBC,194LBC, Certificate No,sertifika numarası, -Deductee Details,Kesinti Ayrıntıları, -PAN No,PAN No, -Validity Details,kutsallık detayları, +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ı, Certificate Limit,Sertifika Limiti, Invoice Series Prefix,Fatura Serisi Öneki, Active Menu,Aktif Menü, -Restaurant Menu,Restoran menüsü, -Price List (Auto created),Fiyat Listesi (Otomatik kaydı), -Restaurant Manager,restoran yöneticisi, +Restaurant Menu,Restaurant Menü, +Price List (Auto created),Fiyat Listesi (Otomatik oluşturuldu), +Restaurant Manager,Restaurant yöneticisi, Restaurant Menu Item,Restaurant Menü Öğesi, Restaurant Order Entry,Restoran Siparişi Girişi, -Restaurant Table,Restoran Masası, -Click Enter To Add,Ekle Gir'i tıklayın, +Restaurant Table,Restaurant Masası, +Click Enter To Add,Ekle Gir'i tıklayın, Last Sales Invoice,Son Satış Faturası, -Current Order,Tamamlayıcı Sipariş, +Current Order,Geçerli Sipariş, Restaurant Order Entry Item,Restaurant Sipariş Girişi Maddesi, -Served,teslim, -Restaurant Reservation,Restoran Rezervasyonu, -Waitlisted,bekleme listesindeki, +Served,sunulan, +Restaurant Reservation,Restaurant Rezervasyonu, +Waitlisted,Bekleme listesindeki, No Show,Gösterim Yok, No of People,İnsanlar Sayısı, Reservation Time,Rezervasyon Süresi, Reservation End Time,Rezervasyon Bitiş Saati, No of Seats,Koltuk Sayısı, -Minimum Seating,Asgari Oturma, -"Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ","Satış Kampanyalarını Takip edin. Yatırım Getirisini Sizin için Kampanyalardaki Teklifleri, Fiyat Tekliflerini, Satış Siparişini vb. Takip edin.", +Minimum Seating,Minimum Oturma, +"Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ","Satış Kampanyalarını Takip edin. Yatırım Getirisini ölçmek için Kampanyalardaki Teklifleri, Fiyat Tekliflerini, Satış Siparişini vb. Takip edin.", SAL-CAM-.YYYY.-,SAL-CAM-.YYYY.-, Campaign Schedules,Kampanya Takvimleri, Buyer of Goods and Services.,Mal ve Hizmet Alıcı., -CUST-.YYYY.-,MÜŞTERİ-.YYYY.-, +CUST-.YYYY.-,CUST-.YYYY.-, Default Company Bank Account,Varsayılan Şirket Banka Hesabı, -From Lead,Bu Müşteri Adayından, -Account Manager,Muhasebe Yöneticisi, -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, +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,Teslimat Notu Olmadan Satış Faturası Oluşturmaya İzin Ver, Default Price List,Standart Fiyat Listesi, 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, -"Reselect, if the chosen contact is edited after save",Seçilen kişi kaydedildikten sonra düzenlenirse yeniden seçin, +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 düzenlenirse yeniden seçin, +"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,Standart dışı alacak hesabı varsa belirtiniz, -Credit Limit and Payment Terms,Kredi Limiti ve Ödeme Biletleri, +Mention if non-standard receivable account,Mansiyon standart dışı alacak hesabı varsa, +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şinde kontör limitini atla, +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 Time,Kurulum Zaman, Installation Note Item,Kurulum Notu Maddesi, -Installed Qty,Kurulum Miktarı, -Lead Source,Aday Kaynağı, +Installed Qty,Kurulan Miktar, +Lead Source,Potansiyel Müşteri Kaynağı, Period Start Date,Dönem Başlangıç Tarihi, Period End Date,Dönem Sonu Tarihi, -Cashier,Kasiyer, -Difference,Fark, -Modes of Payment,Ödeme Biçimi, -Linked Invoices,Bağlı Faturalar, -POS Closing Voucher Details,POS Kapanış Fişi Detayları, +Cashier,kasiyer, +Difference,fark, +Modes of Payment,Ödeme modları, +Linked Invoices,Bağlantılı Faturalar, +POS Closing Voucher Details,POS Kapanış Makbuzu Detayları, Collected Amount,Toplanan Tutar, Expected Amount,Beklenen Tutar, -POS Closing Voucher Invoices,POS Kapanış Fişi Faturaları, +POS Closing Voucher Invoices,POS Kapanış Kuponu Faturaları, Quantity of Items,Ürünlerin Miktarı, -"Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. \n\nThe package **Item** will have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes"".\n\nFor Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Product Bundle Item.\n\nNote: BOM = Bill of Materials","Birleştirilmiş grup **Parçalar** içinde **Parça**. Bu özellikte paketlenen **Parçalar** stoğunun kullanımını kolaylaştırır ve birleştirilir **Parça** kullanılmaz. Paket **Parça** içeriği ""Stoktaki Parça"" için ""Hayır"" ve ""Satıştaki Parça"" seçimi ""Evet"". Örneğin: Laptop ve Arka sırtlığı ayrı ayrı satış paketleri. Ancak müşteri değerlendirmelerini beraberinde alırsa özel fiyattan satarsınız, bu durumda Laptop + Arka sırtlık yeni bir ürün bilgisayarı olacaktır. Açıklama: BOM = Ürün Ağacı", +"Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. \n\nThe package **Item** will have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes"".\n\nFor Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Product Bundle Item.\n\nNote: BOM = Bill of Materials","Birleştirilmiş grubu **Parçalar** içinde **Parça**. Bu özellik paketlenen **Parçalar** stoğunu kullanımı kolaylık sağlar ve birleştirilen **Parça** kullanılmaz. Paket **Parça** içeriği ""Stoktaki Parça"" için ""Hayır"" ve ""Satıştaki Parça"" seçimi ""Evet"". Örneğin: Laptop ve Arka sırtlığı ayrı ayrı satış yapıyorsunuz. Ancak müşteri ikisini beraber alırsa özel fiyattan satıcaksınız, bu durumda Laptop + Arka sırtlık yeni bir ürün kalemi olacaktır. Açıklama: BOM = Ürün Ağacı", Parent Item,Ana Kalem, -List items that form the package.,Ambalajı kimyasal ürünlerini listeleyin, +List items that form the package.,Ambalajı oluşturan Ürünleri listeleyin, SAL-QTN-.YYYY.-,SAL-QTN-.YYYY.-, -Quotation To,Teklif Kime, -Rate at which customer's currency is converted to company's base currency,Müşterinin para biriminin şirketin temel para birimine dönüştürme 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ürme oranı, +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, Referral Sales Partner,Tavsiye Satış Ortağı, -In Words will be visible once you save the Quotation.,fiyat tekliflerini saklayacağınızda görünür olacaktır, +In Words will be visible once you save the Quotation.,fiyat teklifini kaydettiğinizde görünür olacaktır, Term Details,Dönem Ayrıntıları, Quotation Item,Teklif Ürünü, -Against Doctype,Belge Türüne Karşı, -Against Docname,Belge Adına Karşı, -Additional Notes,Ek Notlar, +Against Doctype,Karşılık Belge Türü, +Against Docname,Belge adı karşılığı, +Additional Notes,ek Notlar, SAL-ORD-.YYYY.-,SAL-ORD-.YYYY.-, -Skip Delivery Note,Teslim Notunu Atlası, -In Words will be visible once you save the Sales Order.,Satış emrini saklayacağınızda görünür olacaktır., +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, Not Delivered,Teslim Edilmedi, -Fully Delivered,Tamamen Teslim Edildi, +Fully Delivered,Tamamen Teslim Edilmiş, Partly Delivered,Kısmen Teslim Edildi, Not Applicable,Uygulanamaz, % Delivered,% Teslim Edildi, % of materials delivered against this Sales Order,% malzeme bu satış emri karşılığında teslim edildi, % of materials billed against this Sales Order,% malzemenin faturası bu Satış Emri karşılığında oluşturuldu, Not Billed,Faturalanmamış, -Fully Billed,Tamamen Faturalandı, +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'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ı (%), Contribution to Net Total,Net Toplam Katkı, Selling Settings,Satış Ayarları, Settings for Selling Module,Modülü Satış için Ayarlar, -Customer Naming By,Müşteri Adlandırma buna göre, -Campaign Naming By,Adlandırma Şekli, +Customer Naming By,Müşterinin Bilinen Adı, +Campaign Naming By,Kampanya İsimlendirmesini yapan, Default Customer Group,Varsayılan Müşteri Grubu, Default Territory,Standart Bölge, Close Opportunity After Days,Fırsatı Gün Sonra Kapat, -Default Quotation Validity Days,Varsayılan Teklif Geçerlilik Günü, +Default Quotation Validity Days,Varsayılan Teklif Geçerlilik Günleri, Sales Update Frequency,Satış Güncelleme Sıklığı, Each Transaction,Her İşlem, SMS Center,SMS Merkezi, Send To,Gönder, All Contact,Tüm İrtibatlar, -All Customer Contact,Tüm Müşteri İrtibatları, -All Supplier Contact,Tüm Tedarikçi İrtibatları, -All Sales Partner Contact,Tüm Satış Ortağı İrtibatları, -All Lead (Open),Tüm Müşteri Adayları (Açık), +All Customer Contact,Bütün Müşteri İrtibatları, +All Supplier Contact,Bütün Tedarikçi İrtibatları, +All Sales Partner Contact,Bütün Satış Ortağı İrtibatları, +All Lead (Open),Bütün Müşteri Adayları (Açık), All Employee (Active),Tüm Çalışanlar (Aktif), All Sales Person,Bütün Satıcılar, -Create Receiver List,alıcı listesi oluşturma, -Receiver List,Alıcı listesi, +Create Receiver List,Alıcı listesi oluşturma, +Receiver List,Alıcı Listesi, Messages greater than 160 characters will be split into multiple messages,160 karakterden daha büyük mesajlar birden fazla mesaja bölünecektir, -Total Characters,Toplam Karakter, -Total Message(s),Toplam Mesaj, -Authorization Control,Yetkilendirme Kontrolü, +Total Characters,Toplam Karakterler, +Total Message(s),Toplam Mesaj (lar), +Authorization Control,Yetki Kontrolü, Authorization Rule,Yetkilendirme Kuralı, Average Discount,Ortalama İndirim, Customerwise Discount,Müşteri İndirimi, Itemwise Discount,Ürün İndirimi, -Customer or Item,Müşteri veya Ürün, -Customer / Item Name,Müşteri / Ürün Adı, +Customer or Item,Müşteri ya da Öğe, +Customer / Item Name,Müşteri / Ürün İsmi, Authorized Value,Yetkilendirilmiş Değer, -Applicable To (Role),(Role) uygulanabilir, +Applicable To (Role),(Rolü) için uygulanabilir, Applicable To (Employee),(Çalışana) uygulanabilir, Applicable To (User),(Kullanıcıya) Uygulanabilir, Applicable To (Designation),(Görev) için uygulanabilir, @@ -7771,14 +7771,14 @@ Parent Company,Ana Şirket, Default Values,Varsayılan Değerler, Default Holiday List,Tatil Listesini Standart, Default Selling Terms,Varsayılan Satış Koşulları, -Default Buying Terms,Varsayılan Alış Koşulları, -Create Chart Of Accounts Based On,Hesaplar Tabanlı Grafik oluşturma üzerine, -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,Hesaplar Şablon Grafik, -Existing Company ,Mevcut Şirket , +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, @@ -7787,7 +7787,7 @@ Default Cash Account,Standart Kasa Hesabı, Default Receivable Account,Standart Alacak Hesabı, Round Off Cost Center,Yuvarlama Maliyet Merkezi, Discount Allowed Account,İndirim İzinli Hesap, -Discount Received Account,Alınan indirim Hesabı, +Discount Received Account,İndirim Alınan Hesap, Exchange Gain / Loss Account,Kambiyo 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, @@ -7797,17 +7797,17 @@ Default Cost of Goods Sold Account,Ürünler Satılan Hesabı Varsayılan Maliye Default Income Account,Standart Gelir Hesabı, Default Deferred Revenue Account,Varsayılan Ertelenmiş Gelir Hesabı, Default Deferred Expense Account,Varsayılan Ertelenmiş Gider Hesabı, -Default Payroll Payable Account,Standart Bordro Ödenecek Hesabı, +Default Payroll Payable Account,Standart Bordro Ödenecek Hesap, Default Expense Claim Payable Account,Varsayılan Gider Talebi Ödenecek Hesap, Stock Settings,Stok Ayarları, Enable Perpetual Inventory,Sürekli Envanteri Etkinleştir, Default Inventory Account,Varsayılan Envanter Hesabı, Stock Adjustment Account,Stok Düzeltme Hesabı, -Fixed Asset Depreciation Settings,Sabit Kıymet 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 Bertaraf Kar / Zarar 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 (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ı, +Budget Detail,Bütçe Detay, Exception Budget Approver Role,İstisna Bütçe Onaylayan Rolü, Company Info,Şirket Bilgisi, For reference only.,Başvuru için sadece., @@ -7815,89 +7815,89 @@ Company Logo,Şirket logosu, Date of Incorporation,Kuruluş tarihi, Date of Commencement,Başlama tarihi, Phone No,Telefon No, -Company Description,şirket tanımı, +Company Description,Şirket tanımı, Registration Details,Kayıt Detayları, -Company registration numbers for your reference. Tax numbers etc.,Referans için şirket kayıt numaraları. vergi numaraları vb., -Delete Company Transactions,Şirket İşlemleri Sil, +Company registration numbers for your reference. Tax numbers etc.,Referans için şirket kayıt numaraları. Vergi numaraları vb, +Delete Company Transactions,Şirket İşlemleri sil, Currency Exchange,Döviz, -Specify Exchange Rate to convert one currency into another,Döviz Kuru içine başka bir para birimini kullandığınız, +Specify Exchange Rate to convert one currency into another,Döviz Kuru içine başka bir para birimi dönüştürme belirtin, From Currency,Para biriminden, To Currency,Para Birimine, -For Buying,Almak için, +For Buying,Satın almak için, For Selling,Satmak için, Customer Group Name,Müşteri Grup Adı, Parent Customer Group,Ana Müşteri Grubu, Only leaf nodes are allowed in transaction,İşlemde yalnızca yaprak düğümlere izin verilir, -Mention if non-standard receivable account applicable,Standart dışı alacak hesabı varsa belirtiniz, +Mention if non-standard receivable account applicable,Mansiyon standart dışı alacak hesabı varsa, Credit Limits,Kredi limitleri, -Email Digest,E-Posta Bülteni, -Send regular summary reports via Email.,E-posta yoluyla düzenli özetler gönderir., -Email Digest Settings,E-Mail Bülteni Ayarları, -How frequently?,Hangi sıklıkla?, +Email Digest,E-Mail Bülteni, +Send regular summary reports via Email.,E-posta yoluyla düzenli özet raporlar gönder., +Email Digest Settings,E-Mail Bülteni ayarları, +How frequently?,Ne sıklıkla?, Next email will be sent on:,Sonraki e-posta gönderilecek:, -Note: Email will not be sent to disabled users,Not: E-posta erişimi engellenmeyecektir, -Profit & Loss,Kar & Zarar, -New Income,Yeni Gelir, -New Expenses,Yeni Gider, -Annual Income,Yıllık Gelir, -Annual Expenses,Yıllık Gider, +Note: Email will not be sent to disabled users,Not: E-posta engelli kullanıcılara gönderilmeyecektir, +Profit & Loss,Kar kaybı, +New Income,yeni Gelir, +New Expenses,yeni giderler, +Annual Income,Yıllık gelir, +Annual Expenses,yıllık giderler, Bank Balance,Banka Bakiyesi, -Bank Credit Balance,Banka Alacak Bakiyesi, +Bank Credit Balance,Banka Kredi Bakiyesi, Receivables,Alacaklar, Payables,Borçlar, -Sales Orders to Bill,Fatura Satış Siparişleri, +Sales Orders to Bill,Bill'e Satış Siparişleri, Purchase Orders to Bill,Siparişleri Faturaya Alın, -New Sales Orders,Yeni Satış Siparişleri, -New Purchase Orders,Yeni Satınalma Siparişleri, -Sales Orders to Deliver,Teslim edilecek Satış Siparişleri, -Purchase Orders to Receive,Teslim alınacak Satınalma Siparişleri, -New Purchase Invoice,Yeni Satınalma Faturası, -New Quotations,Yeni Fiyat Teklifi, -Open Quotations,Açık Teklifler, -Open Issues,Açık Sorunlar, +New Sales Orders,Yeni Satış Emirleri, +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, +New Quotations,Yeni Fiyat Teklifleri, +Open Quotations,Teklifleri Aç, +Open Issues,Açık sorunlar, Open Projects,Açık Projeler, Purchase Orders Items Overdue,Satın alınan siparişler gecikmiş ürünler, Upcoming Calendar Events,Yaklaşan Takvim Etkinlikleri, -Open To Do,Açık Yapılacaklar, -Add Quote,Teklif Ekle, -Global Defaults,Genel Varsayılanlar, -Default Company,Varsayılan Firma, +Open To Do,Yapılacaklar Açık, +Add Quote,Alıntı ekle, +Global Defaults,Küresel Varsayılanlar, +Default Company,Standart Firma, Current Fiscal Year,Cari Mali Yılı, Default Distance Unit,Varsayılan Mesafe Birimi, -Hide Currency Symbol,Para Birimi Simgesini Gizle, +Hide Currency Symbol,Para birimi simgesini gizle, 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ülmeyecektir.", -Disable In Words,Sözler 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ünmeyecek", +"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", Item Classification,Ürün Sınıflandırması, General Settings,Genel Ayarlar, Item Group Name,Ürün Grup Adı, Parent Item Group,Ana Kalem Grubu, -Item Group Defaults,Ürün Grubu Varsayılanları, +Item Group Defaults,Öğe Grubu Varsayılanları, Item Tax,Ürün Vergisi, -Check this if you want to show in website,Web sitesinde göstermek istiyorsanız bunu işaretleyin, +Check this if you want to show in website,Web sitesinde göstermek istiyorsanız işaretleyin, Show this slideshow at the top of the page,Sayfanın üstünde bu slayt gösterisini göster, -HTML / Banner that will show on the top of product list.,Ürün listesinin muhafazaları HTML / Banner., -Set prefix for numbering series on your transactions,İşlemlerinizde seri numaralandırma için ön ek ayarı, -Setup Series,Seri Kurulumu, +HTML / Banner that will show on the top of product list.,Ürün listesinin tepesinde görünecek HTML / Banner., +Set prefix for numbering series on your transactions,İşlemlerinizde seri numaralandırma için ön ek ayarlayın, +Setup Series,Kurulum Serisi, Select Transaction,İşlem Seçin, -Help HTML,Yardım HTML'si, +Help HTML,Yardım HTML, Series List for this Transaction,Bu İşlem için Seri Listesi, User must always select,Kullanıcı her zaman seçmelidir, -Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Kullanıcıya kaydetmekten önce seri seçmek istiyorum. Eğer işaretlerseniz atanmış seri olmayacak., +Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Kullanıcıya kaydetmeden önce seri seçtirmek istiyorsanız işaretleyin. Eğer işaretlerseniz atanmış seri olmayacaktır., Update Series,Seriyi Güncelle, -Change the starting / current sequence number of an existing series.,Varolan bir serinin başlangıcı / geçerli sıra numarası kuralları., +Change the starting / current sequence number of an existing series.,Varolan bir serinin başlangıç / geçerli sıra numarasını değiştirin., Prefix,Önek, -Current Value,Geçerli Değer, -This is the number of the last created transaction with this prefix,Bu ön ekle son genişleme miktarıdır, +Current Value,Mevcut değer, +This is the number of the last created transaction with this prefix,Bu ön ekle son oluşturulmuş işlemlerin sayısıdır, Update Series Number,Seri Numaralarını Güncelle, Quotation Lost Reason,Teklif Kayıp Nedeni, -A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.,Bir komisyon için kuruluşlar birimleri şeytan bir üçüncü taraf sağlayıcı / bayi / komisyon ajan / ortaklık / bayi., +A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.,Bir komisyon için şirketlerin ürünlerini satan bir üçüncü taraf dağıtıcı / bayi / komisyon ajan / ortaklık / bayi., Sales Partner Name,Satış Ortağı Adı, Partner Type,Ortak Türü, Address & Contacts,Adresler ve Kontaklar, Address Desc,Azalan Adres, -Contact Desc,İrtibat Azalt, +Contact Desc,İrtibat Desc, Sales Partner Target,Satış Ortağı Hedefi, Targets,Hedefler, Show In Website,Web sitesinde Göster, @@ -7905,33 +7905,33 @@ Referral Code,Yönlendirme Kodu, 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 motive etmek böylece tüm satış işlemlerini birdenbire ** Satış Kişilerin ** karşı etiketlenmiş olabilir., +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., Name and Employee ID,İsim ve Çalışan Kimliği, Sales Person Name,Satış Personeli Adı, Parent Sales Person,Ana Satış Elemanı, -Select company name first.,Önce şirket adını seçiniz, +Select company name first.,Önce şirket adı seçiniz, Sales Person Targets,Satış Personeli Hedefleri, -Set targets Item Group-wise for this Sales Person.,Bu Satış Kişisi için Ürün Grubu not ayarı, +Set targets Item Group-wise for this Sales Person.,Bu Satış Kişisi için Ürün Grubu hedefleri ayarlayın, Supplier Group Name,Tedarikçi Grubu Adı, Parent Supplier Group,Ana Tedarikçi Grubu, Target Detail,Hedef Detayı, Target Qty,Hedef Miktarı, Target Amount,Hedef Miktarı, Target Distribution,Hedef Dağıtımı, -"Standard Terms and Conditions that can be added to Sales and Purchases.\n\nExamples:\n\n1. Validity of the offer.\n1. Payment Terms (In Advance, On Credit, part advance etc).\n1. What is extra (or payable by the Customer).\n1. Safety / usage warning.\n1. Warranty if any.\n1. Returns Policy.\n1. Terms of shipping, if applicable.\n1. Ways of addressing disputes, indemnity, liability, etc.\n1. Address and Contact of your Company.","Standart Şartlar ve Satış ve Alımlar eklenebilir Koşullar.\n\n Örnekler: \n\n 1. Teklifin geçerliliği.\n 1. Ödeme Koşulları (Kredi On geçen, bölüm avans vb).\n 1. Ne ekstra (veya müşteri tarafından) verilir).\n 1. Güvenlik / kullanım tahsilat uyarısı.\n 1. Garanti alınırlar.\n 1. Politikası gider.\n 1. Nakliye koşulları, varsa.\n 1. Vb adresleme uyuşmazlıkların, tazminat, sorumluluk, \n 1 Yolları. Adres ve Şirket İletişim.", -Applicable Modules,uygulanabilir modülleri, +"Standard Terms and Conditions that can be added to Sales and Purchases.\n\nExamples:\n\n1. Validity of the offer.\n1. Payment Terms (In Advance, On Credit, part advance etc).\n1. What is extra (or payable by the Customer).\n1. Safety / usage warning.\n1. Warranty if any.\n1. Returns Policy.\n1. Terms of shipping, if applicable.\n1. Ways of addressing disputes, indemnity, liability, etc.\n1. Address and Contact of your Company.","Standart Şartlar ve Satış ve Alımlar eklenebilir Koşullar.\n\n Örnekler: \n\n 1. Teklifin geçerliliği.\n 1. Ödeme Koşulları (Kredi On Önceden, bölüm avans vb).\n 1. Ne ekstra (veya Müşteri tarafından tahsil edilir).\n 1. Güvenlik / kullanım uyarısı.\n 1. Garanti alınırlar.\n 1. Politikası döndürür.\n 1. Nakliye koşulları, varsa.\n 1. Vb adresleme uyuşmazlıkların, tazminat, sorumluluk, \n 1 Yolları. Adres ve Şirket İletişim.", +Applicable Modules,Uygulanabilir modülleri, Terms and Conditions Help,Şartlar ve Koşullar Yardım, -Classification of Customers by region,Bölgelere göre Müşteriler yerleşimi, +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ölge grubu Ürün bütçeleri ayarlanır. Dağıtımı ayarlayarak dönemsellik de çalıştırma., +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 vermek için ayrılmak (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,Öğenin birden çok grupta Çapraz Listelenmesi, +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ı, @@ -7940,29 +7940,29 @@ Show Price,Fiyatı Göster, 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 Kodu Uygula'yı göster, -Allow items not in stock to be added to cart,Stokta olmayan böceklerin sepetine yayılmasına izin ver, -Prices will not be shown if Price List is not set,Fiyat Listesi ayarlı fiyatları fiyatları düşürmez, +Show Apply Coupon Code,Kupon Kodunu Uygula'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, Checkout Settings,Ödeme Ayarları, -Enable Checkout,Ödeme Etkinleştir, -Payment Success Url,Ödeme Başarı URL'si, -After payment completion redirect user to selected page.,Ödemeyi aldıktan sonra kullanıcıyı seçilen sayfaya yönlendirin., -Batch Details,Batch Ayrıntıları, -Batch ID,Batch ID, +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,Toplu İş Ayrıntıları, +Batch ID,Parti numarası, image,görüntü, -Parent Batch,Ana Batch, -Manufacturing Date,Üretim Tarihi, -Batch Quantity,Batch Miktarı, -Batch UOM,Batch Birimi, +Parent Batch,Ana Parti, +Manufacturing Date,Üretim tarihi, +Batch Quantity,Parti Miktarı, +Batch UOM,Toplu UOM, Source Document Type,Kaynak Belge Türü, Source Document Name,Kaynak Belge Adı, -Batch Description,Bölüm Açıklaması, +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,Alt sözleşme için ayrılan 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ı, @@ -7970,163 +7970,163 @@ Tariff Number,Tarife Numarası, Delivery To,Teslim, MAT-DN-.YYYY.-,MAT-DN-.YYYY.-, Is Return,İade mi, -Issue Credit Note,Alacak Dekontu Ver, -Return Against Delivery Note,İrsaliye Karşılığında İade, -Customer's Purchase Order No,Müşterinin Satınalma Sipariş Numarası, +Issue Credit Note,Sayı kredi notu, +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 Şablonu standart bir şablon oluşturulduysa, birini seçin ve aşağıdaki butona tıklayın.", -In Words will be visible once you save the Delivery Note.,Tutarın Yazılı Hali İrsaliyeyi koruduğunuzda görünür olacaktır, -In Words (Export) will be visible once you save the Delivery Note.,Tutarın Yazılı Hali (İhracat) İrsaliyeyi kurtaracağınızde görünür olacaktır., -Transporter Info,Nakliyeci Bilgisi, -Driver Name,Şoför Adı, +"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.", +In Words will be visible once you save the Delivery Note.,Tutarın Yazılı Hali İrsaliyeyi kaydettiğinizde görünür olacaktır, +In Words (Export) will be visible once you save the Delivery Note.,Tutarın Yazılı Hali (İhracat) İrsaliyeyi kaydettiğinizde görünür olacaktır., +Transporter Info,Taşıyıcı Bilgisi, +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 deposu teslim edildi, +% 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,Depodan, -Against Sales Order,Satış Siparişi Karşılığı, +From Warehouse,Atölyesi'nden, +Against Sales Order,Satış Emri Karşılığı, Against Sales Order Item,Satış Sipariş Kalemi karşılığı, Against Sales Invoice,Satış Faturası Karşılığı, Against Sales Invoice Item,Satış Fatura Kalemi karşılığı, -Available Batch Qty at From Warehouse,Depodaki Kullanılabilir Parti Miktarı, -Available Qty at From Warehouse,Depodaki Kullanılabilir Miktar, +Available Batch Qty at From Warehouse,Depodaki Mevcut Parti Miktarı, +Available Qty at From Warehouse,Alınacağı Depodaki Mevcut Miktar, Delivery Settings,Teslimat Ayarları, Dispatch Settings,Sevk Ayarları, Dispatch Notification Template,Sevk Bildirim Şablonu, Dispatch Notification Attachment,Sevk Bildirimi Eki, -Leave blank to use the standard Delivery Note format,Standart İrsaliye formatı kullanmak için boş bırakın, +Leave blank to use the standard Delivery Note format,Standart Teslimat Not formatını kullanmak için boş bırakın, Send with Attachment,Ek ile Gönder, Delay between Delivery Stops,Teslimat Durakları arasındaki gecikme, Delivery Stop,Teslimat Durdur, -Lock,kilit, +Lock,Kilit, Visited,Ziyaret, Order Information,Sipariş Bilgisi, -Contact Information,iletişim bilgileri, +Contact Information,İletişim bilgileri, Email sent to,E-posta Gönderilen, Dispatch Information,Sevk Bilgileri, -Estimated Arrival,tahmini gerçekleştirme, +Estimated Arrival,tahmini varış, MAT-DT-.YYYY.-,MAT-DT-.YYYY.-, Initial Email Notification Sent,Gönderilen İlk E-posta Bildirimi, Delivery Details,Teslim Bilgileri, Driver Email,Sürücü E-postası, Driver Address,Sürücü Adresi, Total Estimated Distance,Toplam Tahmini Mesafe, -Distance UOM,uzak UOM, -Departure Time,hareket saati, +Distance UOM,Uzak UOM, +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 tahmini kullanım kullanımlarını 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'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, -In Transit,transit olarak, -Fulfillment User,Yerine getirme kullanıcı, -"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 verileri bir hizmet.", +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 şablonundan kurulacak vb başka bir öğe bir tahmini ise", -Is Item from Hub,Hub'dan Öğe Var mı, +"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,Hub'dan Öğe Var mı, Default Unit of Measure,Varsayılan Ölçü Birimi, -Maintain Stock,Stok Takibi Yap, +Maintain Stock,Stok koruyun, Standard Selling Rate,Standart Satış Oranı, -Auto Create Assets on Purchase,Satınalmada Varlıkları Otomatik Oluştur, +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 Bitişi, -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,Depo bazlı Yeniden sipariş seviyesi, -Will also apply for variants unless overrridden,Geçersiz kılınmadığı sürece varyantlar için de geçerli olacaktır., -Units of Measure,Ölçü Birimleri, -Will also apply for variants,Varyantlar için de geçerli olacak, -Serial Nos and Batches,Seri No ve Batches (Parti), +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,Batch/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 Toplu İş No'dan kısaca bahsetmek isterseniz, bunu boş bırakın. Not: Bu ayar, Stok Ayarları'nda Adlandırma Serisi Önekine göre öncelikli olacaktır.", +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.", Has Expiry Date,Vade Sonu Var, -Retain Sample,Numuneyi Sakla, +Retain Sample,Numune Alın, Max Sample Quantity,Maksimum Numune Miktarı, Maximum sample quantity that can be retained,Tutulabilen maksimum numune miktarı, -Has Serial No,Seri Numarası Var, +Has Serial No,Seri no Var, 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:. Seri ayarladı ve Seri No belirtilen istenen ABCD ##### \n, daha sonra otomatik seri numarası bu seriye dayalı olarak oluşturulur. Her zaman geniş bu öğe için seri No konuşmak istiyorum. Bu boş bırakın.", +"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, -"If this item has variants, then it cannot be selected in sales orders etc.","Bu öğeyi görmeleri varsa, o zaman satış siparişleri vb seçilemez", -Variant Based On,Varyant Tabanlı, -Item Attribute,Ürün Özelliği, -"Sales, Purchase, Accounting Defaults","Satış, Satınalma, Varsayılan Muhasebeleri", -Item Defaults,Ürün Varsayılanları, -"Purchase, Replenishment Details","Satınalma, Yenileme Detayları", -Is Purchase Item,Satınalma Kalemi mi, -Default Purchase Unit of Measure,Varsayılan Alış Birimi, +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,Varyant Dayalı, +Item Attribute,Ürün Özellik, +"Sales, Purchase, Accounting Defaults","Satış, Satınalma, Muhasebe Varsayılanları", +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ıdır, -Average time taken by the supplier to deliver,Tedarikçinin teslim etmesi için geçen ortalama süre, -Is Customer Provided Item,Müşteri Tarafından Sağlanan Öğe mi, -Delivered by Supplier (Drop Ship),Tedarikçi tarafından teslim edildi (Drop Ship), -Supplier Items,Tedarikçi Öğeleri, +Minimum quantity should be as per Stock UOM,Minimum miktar Stok UOM'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 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ı, +Sales Details,Satış Ayrıntılar, Default Sales Unit of Measure,Varsayılan Öğe Satış Birimi, -Is Sales Item,Satış Kalemi mi, -Max Discount (%),Maksimum İndirim (%), +Is Sales Item,Satış Maddesi, +Max Discount (%),En fazla İndirim (%, No of Months,Ayların Sayısı, -Customer Items,Müşteri Öğeleri, +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,Standart Ürün Ağacı, -Supply Raw Materials for Purchase,Satınalma için Hammadde Temini, -If subcontracted to a vendor,Bir satıcıya taşero edildi mi, +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 Öğ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 ağırlık Öğeler yüksek gösterim, -Show a slideshow at the top of the page,Sayfanın üstünde bir slayt öğretmen gösterisi, -Website Image,Websitesi Resmi, -Website Warehouse,Web Sitesi Deposu, -"Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.","Depodaki mevcut stok ölçülerine göre ""Stokta"" veya ""Stokta değil"" olarak göster", +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,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, +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,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 dizsi kullanabilirsiniz. Öğe Sayfanızda gösterilecek., +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, Hub Publishing Details,Hub Yayınlama Ayrıntıları, -Publish in Hub,Hubta 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ın Merkezi Kategorisi olacak, -Hub Warehouse,Hub Deposu, -"Publish ""In Stock"" or ""Not in Stock"" on Hub based on stock available in this warehouse.",Yayın için "Stokta" ya da "Stokta Bulunamadı" on Hub bu stokta bulunan stokları esas alın., +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.",Yayın için "Stokta" ya da "Stokta Bulunmadı" on Hub bu stokta mevcut bulunan stokları esas alın., Synced With Hub,Hub ile Senkronize, -Item Alternative,Ürün Alternatifi, +Item Alternative,Öğe alternatif, Alternative Item Code,Alternatif Ürün Kodu, Two-way,Çift yönlü, Alternative Item Name,Alternatif öğe adı, Attribute Name,Öznitelik Adı, Numeric Values,Sayısal Değerler, -From Range,Baş. Oranı, +From Range,Sınıfımızda, Increment,Artım, -To Range,Bitiş Oranı, -Item Attribute Values,Ürün Özellik Değerleri, +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 tahmini Ürün Kodu eklenecektir. Senin anlatımı ""SM"", ve eğer, örneğin, ürün kodu ""T-Shirt"", ""T-Shirt-SM"" olacağını öngörmenin madde kodu", +"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, Barcode Type,Barkod Türü, EAN,EAN, @@ -8134,10 +8134,10 @@ UPC-A,UPC-A, Item Customer Detail,Ürün Müşteri Detayı, "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 girişi, -Purchase Defaults,Satınalma Varsayılanları, +Item Default,Öğe varsayılan, +Purchase Defaults,Satın Alma Varsayılanları, Default Buying Cost Center,Standart Alış Maliyet Merkezi, -Default Supplier,standart tedarikçi, +Default Supplier,Standart Tedarikçi, Default Expense Account,Standart Gider Hesabı, Sales Defaults,Satış Varsayılanları, Default Selling Cost Center,Standart Satış Maliyet Merkezi, @@ -8146,103 +8146,103 @@ Item Price,Ürün Fiyatı, Packing Unit,Paketleme birimi, Quantity that must be bought or sold per UOM,UOM başına satın alınması veya satılması gereken miktar, Item Quality Inspection Parameter,Ürün Kalite Kontrol Parametreleri, -Acceptance Criteria,Kabil Kriterleri, +Acceptance Criteria,Kabul Kriterleri, Item Reorder,Ürün Yeniden Sipariş, -Check in (group),Check-in (grup), -Request for,Talep şunun için, -Re-order Level,Yeniden Sipariş Seviyesi, -Re-order Qty,Yeniden Sipariş Adet, +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,Öğe Varyantı, +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ın., +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österimi Öğe için Tablo, +Table for Item that will be shown in Web Site,Web Sitesi gösterilir Öğe için Tablo, Landed Cost Item,İnen Maliyet Kalemi, -Receipt Document Type,Fiş Belge Türü, -Receipt Document,Fiş Belgesi, +Receipt Document Type,Makbuz Belge Türü, +Receipt Document,makbuz Belgesi, Applicable Charges,Uygulanabilir Ücretler, -Purchase Receipt Item,Alış Fişi Ürünleri, -Landed Cost Purchase Receipt,Yüklenen Maliyet Alış Fişi, -Landed Cost Taxes and Charges,Yüklenen Maliyet Vergiler ve Harçlar, -Landed Cost Voucher,Yüklenen Maliyet Fişi, +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 İrsaliyesi Ürünleri, -Get Items From Purchase Receipts,Satınalma İrsaliyesinden Ürünleri Getir, -Distribute Charges Based On,Masrafları Şuna göre Dağıt, -Landed Cost Help,Son teslim alma Maliyet Yardımı, -Manufacturers used in Items,Kullanılan Öğeler Üreticileri, -Limited to 12 characters,12 karakter ile sınırlı, -MAT-MR-.YYYY.-,MAT-BAY-.YYYY.-, +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,Öğ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, -% Ordered,% Sipariş verildi, +% 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,Önceki Doküman, +Prevdoc DocType,Prevdoc Doctype, 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.","Teslim edilecek paketler için sevk irsaliyeleri oluşturun. Paket numarasını, paket içeriğini ve ağırlığını bildirmek için kullanılır.", +"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.-, From Package No.,Ambalaj Numarasından., -Identification of the package for the delivery (for print),(Baskı için) teslimat için ambalajın maliyeti, -To Package No.,ambalaj numarası, +Identification of the package for the delivery (for print),(Baskı için) teslimat için ambalajın tanımlanması, +To Package No.,Ambalaj No., If more than one package of the same type (for print),(Baskı için) aynı ambalajdan birden fazla varsa, Package Weight Details,Ambalaj Ağırlığı Detayları, -The net weight of this package. (calculated automatically as sum of net weight of items),Bu paketin net ağırlığı (Ürünlerin net toplamından otomatik olarak çıkarılması), +The net weight of this package. (calculated automatically as sum of net weight of items),Bu paketin net ağırlığı (Ürünlerin net toplamından otomatik olarak hesaplanır), Net Weight UOM,Net Ağırlık Ölçü Birimi, Gross Weight,Brüt Ağırlık, -The gross weight of the package. Usually net weight + packaging material weight. (for print),Paketin ağır ağırlığı. Genellikle net ağırlık + ambalaj ürün ağırlığı. (Baskı için), +The gross weight of the package. Usually net weight + packaging material weight. (for print),Paketin brüt ağırlığı. Genellikle net ağırlığı + ambalaj Ürünü ağırlığı. (Baskı için), Gross Weight UOM,Brüt Ağırlık Ölçü Birimi, -Packing Slip Item,Sevk İrsaliyesi Kalemi, +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, -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 verecek.", +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 depodaki ürünler önerilecek, +Items under this warehouse will be suggested,Bu depo altındaki ürünler önerilecektir, Get Item Locations,Öğe Konumlarını Alın, Item Locations,Öğe Konumları, Pick List Item,Liste Öğesini Seç, -Picked Qty,Toplanan Miktar, -Price List Master,Fiyat Listesi Master, +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, -Applicable for Countries,Geçerli olduğu Ülkeler, -Price List Country,Fiyat Listesi Ülkesi, +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,İrsaliye Karşılığında İade, -Rate at which supplier's currency is converted to company's base currency,Tedarikçinin para biriminin şirketin temel para birimine dönüştürme oranı, -Sets 'Accepted Warehouse' in each row of the items table.,Kalemler tablosunun her tablosunda 'Kabil Edilen Depo' ayarlar., -Sets 'Rejected Warehouse' in each row of the items table.,Kalemler tablosunun her tablosunda 'Reddedilen Depo' ayarlar., +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., Raw Materials Consumed,Tüketilen Hammaddeler, -Get Current Stock,Mevcut Stoğu Al, +Get Current Stock,Cari Stok alın, Consumed Items,Tüketilen Ürünler, Add / Edit Taxes and Charges,Ekle / Düzenle Vergi ve Harçlar, -Auto Repeat Detail,Otomatik Tekrar Detayı, -Transporter Details,Nakliyeci Detayları, -Vehicle Number,Araç Numarası, +Auto Repeat Detail,Otomatik tekrar detayı, +Transporter Details,Taşıyıcı Detayları, +Vehicle Number,Araç Sayısı, Vehicle Date,Araç Tarihi, Received and Accepted,Alındı ve Kabul edildi, Accepted Quantity,Kabul edilen Miktar, -Rejected Quantity,Reddilen Miktar, -Accepted Qty as per Stock UOM,Stok Birimine göre Kabul edilen Miktar, +Rejected Quantity,Reddedilen Miktar, +Accepted Qty as per Stock UOM,Stok UOM'ye göre Kabul Edilen Miktar, Sample Quantity,Numune Miktarı, Rate and Amount,Oran ve Miktar, MAT-QA-.YYYY.-,MAT-QA .YYYY.-, -Report Date,Tarihi Rapor, +Report Date,Rapor Tarihi, Inspection Type,Muayene Türü, Item Serial No,Ürün Seri No, Sample Size,Numune Miktarı, @@ -8261,9 +8261,9 @@ Reading 9,9 Okuma, Reading 10,10 Okuma, Quality Inspection Template Name,Kalite Kontrol Şablonu Adı, Quick Stock Balance,Hızlı Stok Bakiyesi, -Available Quantity,Mevcut Miktar, +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 / İrsaliye / Alış Fişi üzerinden değiştirilebilir, +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, @@ -8271,12 +8271,12 @@ Creation Date,Oluşturulma Tarihi, Creation Time,Oluşturma Zamanı, Asset Details,Varlık Ayrıntıları, Asset Status,Varlık Durumu, -Delivery Document Type,Teslim Belgesi Türü, -Delivery Document No,Teslim Belgesi No, +Delivery Document Type,Teslim Belge Türü, +Delivery Document No,Teslim Belge No, Delivery Time,İrsaliye Zamanı, -Invoice Details,Fatura Detayları, +Invoice Details,Fatura detayları, Warranty / AMC Details,Garanti / AMC Detayları, -Warranty Expiry Date,Garanti Son Kullanım Tarihi, +Warranty Expiry Date,Garanti Son Kullanma Tarihi, AMC Expiry Date,AMC Bitiş Tarihi, Under Warranty,Garanti Altında, Out of Warranty,Garanti Dışı, @@ -8285,96 +8285,96 @@ Out of AMC,Çıkış AMC, 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 Paketle, -Send to Subcontractor,Taşeron'a Gönder, +Repack,Yeniden paketlemek, +Send to Subcontractor,Taşeron'a Gönder, Delivery Note No,İrsaliye No, Sales Invoice No,Satış Fatura No, Purchase Receipt No,Satın alma makbuzu numarası, Inspection Required,Muayene Gerekli, -From BOM,İlgili BOM, +From BOM,BOM Gönderen, For Quantity,Miktar, -As per Stock UOM,Stok Birimine göre, -Including items for sub assemblies,Alt montajlar için öğeler dahil, -Default Source Warehouse,Varsayılan Kaynak Depo, +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ı (Dış - Giriş), -Additional Costs,Ek geçitler, +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 Hareketi 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 ürün ağacı numarası, -Material Request used to make this Stock Entry,Bu stok hareketini yapmak için kullanılan Malzeme Talebi, +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 girdisini yapmak için kullanılan Malzeme Talebi, Subcontracted Item,Taşeronluk kalemi, -Against Stock Entry,Stok Hareketine karşı, -Stock Entry Child,Stok Hareketi Alt, +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ınalma Fişi, -Stock Ledger Entry,Stok Defter Girişi, +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ı gerçek Adet, Stock Value Difference,Stok Değer Farkı, Stock Queue (FIFO),Stok Kuyruğu (FIFO), 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 sistem stok miktarı ve değerleme düzeltmeleri için yardımcı olur. Genellikle sistem değerleri ve ne aslında depolarda var eşitlemek için kullanılır.", +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.-, Reconciliation JSON,Mutabakat JSON, Stock Reconciliation Item,Stok Mutabakat Kalemi, -Before reconciliation,Mutabakat öncesi, -Current Serial No,servis seri no, +Before reconciliation,Mutabakat öncesinde, +Current Serial No,Geçerli Seri No, 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,Göster Barkod Alanı, -Convert Item Description to Clean HTML,Açıklama Öğesini Temiz HTML'ye Dönüştür, -Allow Negative Stock,Negatif Stoğa İzin ver, +Convert Item Description to Clean HTML,Öğe Açıklamaunu Temiz HTML'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,Donmuş Stok Hareketleri, +Freeze Stock Entries,Donmuş Stok Girdileri, Stock Frozen Upto,Stok Dondurulmuş, Batch Identification,Toplu Tanımlama, -Use Naming Series,Adlandırma Dizisini Kullanım, +Use Naming Series,Adlandırma Dizisini Kullan, Naming Series Prefix,Seri Öneki Adlandırma, UOM Category,UOM Kategorisi, UOM Conversion Detail,Ölçü Birimi Dönüşüm Detayı, Variant Field,Varyant Alanı, -A logical Warehouse against which stock entries are made.,Stok girişleri Depoya karşı yapıldı, +A logical Warehouse against which stock entries are made.,Stok girişleri mantıksal Depoya karşı yapıldı, 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),Talep eden (Email), +Raised By (Email),(Email) ile talep eden, Issue Type,Sorun Tipi, -Issue Split From,Sorunun Ayrıldığı Yer, -Service Level,Hizmet Seviyesi, +Issue Split From,Sayıdan Böl, +Service Level,Servis seviyesi, Response By,Yanıtla, Response By Variance,Varyans Yanıtı, -Ongoing,Devam ediyor, -Resolution By,Çözen, +Ongoing,Devam eden, +Resolution By,Çözünürlük, Resolution By Variance,Varyans ile Çözünürlük, Service Level Agreement Creation,Hizmet Seviyesi Anlaşması Oluşturma, -First Responded On,İlk Yanıt Tarihi, +First Responded On,İlk cevap verilen, Resolution Details,Karar Detayları, Opening Date,Açılış Tarihi, Opening Time,Açılış Zamanı, @@ -8383,29 +8383,29 @@ Via Customer Portal,Müşteri Portalı üzerinden, Support Team,Destek Ekibi, Issue Priority,Sorun Önceliği, Service Day,Hizmet günü, -Workday,Çalışma günü, +Workday,iş günü, Default Priority,Varsayılan Öncelik, -Priorities,Öncelikler, +Priorities,Öncelikleri, Support Hours,Destek Saatleri, Support and Resolution,Destek ve Çözünürlük, Default Service Level Agreement,Varsayılan Servis Seviyesi Sözleşmesi, -Entity,Tüzel, +Entity,varlık, Agreement Details,Anlaşma Detayları, Response and Resolution Time,Tepki ve Çözünürlük Zamanı, Service Level Priority,Servis Seviyesi Önceliği, -Resolution Time,Çözünürlük Zamanı, +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 Dönem Param Adı, Response Options,Yanıt Seçenekleri, Response Result Key Path,Yanıt Sonuç Anahtar Yolu, -Post Route String,Rota Dizisi Gönder, +Post Route String,Rota Dizesi Gönder, Post Route Key List,Rota Rota Listesini Kaydet, Post Title Key,Yazı Başlığı Anahtarı, -Post Description Key,Mesaj Açıklama Anahtarı, +Post Description Key,Mesaj Açıklaması Anahtarı, Link Options,Bağlantı Seçenekleri, -Source DocType,Kaynak Belge Türü, +Source DocType,Kaynak DocType, Result Title Field,Sonuç Başlık Alanı, Result Preview Field,Sonuç Önizleme Alanı, Result Route Field,Sonuç Rota Alanı, @@ -8426,23 +8426,23 @@ Search APIs,Arama API'ları, SER-WRN-.YYYY.-,SER-UYR-.YYYY.-, Issue Date,Veriliş tarihi, Item and Warranty Details,Ürün ve Garanti Detayları, -Warranty / AMC Status,Garanti / AMC Durumu, -Resolved By,Çözen, +Warranty / AMC Status,Garanti / AMC Durum, +Resolved By,Tarafından Çözülmüştür, Service Address,Servis Adresi, -If different than customer address,Müşteri şirketinden farklı ise, +If different than customer address,Müşteri adresinden farklı ise, Raised By,Talep eden, From Company,Şirketten, -Rename Tool,Yeniden adlandırma aracı, -Utilities,Faydalı şeyler, +Rename Tool,yeniden adlandırma aracı, +Utilities,Programlar, Type of document to rename.,Yeniden adlandırılacak Belge Türü., -File to Rename,Dosyayı Yeniden Adlandır, -"Attach .csv file with two columns, one for the old name and one for the new name","İki sütun, eski adı diğerinin yeni adının eklenmesi .csv dosyasının birleştirilmesi", -Rename Log,Girişi yeniden tanımlama, +File to Rename,Rename Dosya, +"Attach .csv file with two columns, one for the old name and one for the new name","Iki sütun, eski adı diğeri yeni isim biriyle .csv dosya eklemek", +Rename Log,Girişi yeniden adlandır, SMS Log,SMS Kayıtları, Sender Name,Gönderenin Adı, Sent On,Gönderim Zamanı, No of Requested SMS,İstenen SMS Sayısı, -Requested Numbers,Talep Sayıları, +Requested Numbers,Talep Sayılar, No of Sent SMS,Gönderilen SMS sayısı, Sent To,Gönderildiği Kişi, Absent Student Report,Öğrenci Devamsızlık Raporu, @@ -8450,10 +8450,10 @@ Assessment Plan Status,Değerlendirme Planı Durumu, Asset Depreciation Ledger,Varlık Değer Kaybı Defteri, Asset Depreciations and Balances,Varlık Değer Kayıpları ve Hesapları, Available Stock for Packing Items,Ambalajlama Ürünleri İçin Kullanılabilir Stok, -Bank Clearance Summary,Banka Gümrükleme Özeti, -Bank Remittance,Banka Havalesi, -Batch Item Expiry Status,Batch Öğesi Süre Sonu Durumu, -Batch-Wise Balance History,Batch bazlı Bakiye Geçmişi, +Bank Clearance Summary,Banka Gümrükleme Özet, +Bank Remittance,Banka havalesi, +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 Hisse Senedi Hesaplanan, @@ -8462,239 +8462,239 @@ Campaign Efficiency,Kampanya Verimliliği, Cash Flow,Nakit Akışı, Completed Work Orders,Tamamlanmış İş Emri, To Produce,Üretilecek, -Produced,Üretilen, -Consolidated Financial Statement,Konsolide Finansal Tablolar, -Course wise Assessment Report,Akıllıca Alınan Hazır Değerlendirme Raporu, +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 Ledger Summary,Müşteri Cari Defter Özeti, +Customer Credit Balance,Müşteri Kredi Bakiyesi, +Customer Ledger Summary,Müşteri Muhasebe Özeti, Customer-wise Item Price,Müşteri-bilge Öğe Fiyat, -Customers Without Any Sales Transactions,Satış İşlemi olmayan Müşteriler, +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 İş Özeti Cevapları, DATEV,DATEV, Delayed Item Report,Gecikmeli Ürün Raporu, Delayed Order Report,Gecikmeli Sipariş Raporu, -Delivered Items To Be Billed,Fatura Teslim Edilecek Ürünler, -Delivery Note Trends,İrsaliye Trendleri, +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,Personelin 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,Süregelen Üyelikler, -Fichier des Ecritures Comptables [FEC],Uyumlu Fichier des Ecritures [FEC], +Fichier des Ecritures Comptables [FEC],Fichier des Ecritures Comptables [FEC], Final Assessment Grades,Final Değerlendirme Notları, -Fixed Asset Register,Sabit Kıymet Kaydı, +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 Sales Register,GST Maddeli Satış Kaydı, -GST Purchase Register,GST Satınalma Kaydı, +GST Itemised Purchase Register,GST'ye göre Satın Alınan Kayıt, +GST Itemised Sales Register,GST Madde Numaralı Satış 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 malzemeler HSN-bilge açıklaması, -Inactive Customers,Pasif Müşteriler, -Inactive Sales Items,Pasif Satış Ögeleri, +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şı Verilmiş Ürünler, Projected Quantity as Source,Kaynak olarak Öngörülen Miktarı, -Item Balance (Simple),Ürün Bakiyesi (Basit), -Item Price Stock,Stok Ürün Fiyat Bilgisi, +Item Balance (Simple),Öğe Dengesi (Basit), +Item Price Stock,Öğe Fiyat Stok, Item Prices,Ürün Fiyatları, Item Shortage Report,Ürün Yetersizliği Raporu, Item Variant Details,Öğe Varyant Detayları, -Item-wise Price List Rate,Ürün bazında Fiyat Listesi Oranı, -Item-wise Purchase History,Ürün bazında Alış Geçmişi, -Item-wise Purchase Register,Ürün bazında Alış Kaydı, -Item-wise Sales History,Ürün bazında Satış Geçmişi, -Item-wise Sales Register,Ürün bazında Satış Kaydı, -Items To Be Requested,Talep Edilecek Ürünler, +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 için Önerilen Yeniden Sipariş Düzeyi, -Lead Details,Müşteri Adayı Detayı, -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, +Lost Opportunity,Fırsat Kayıp, Maintenance Schedules,Bakım Programları, -Material Requests for which Supplier Quotations are not created,Tedarikçi Tekliflerinin oluşturulmadığı Malzeme Talepleri, -Monthly Attendance Sheet,Aylık Katılım Çetveli, +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 göre Ödeme Dönemi, -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 Bundle Bakiyesi, -Production Analytics,Üretim Analitiği, +Product Bundle Balance,Ürün Paketi Dengesi, +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, -Project wise Stock Tracking ,Proje bazlı Stok Takibi , -Prospects Engaged But Not Converted,İlgilenilen Potansiyel Müşteriler, -Purchase Analytics,Satınalma Analizi, -Purchase Invoice Trends,Satınalma Faturası 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 Tutarı, +Received Qty Amount,Alınan Miktar Miktarı, Billed Qty,Faturalı Miktar, -Purchase Order Trends,Satınalma Sipariş Analizi, -Purchase Receipt Trends,Satınalma İrsaliyesi Analizi, -Purchase Register,Satınalma Kaydı, -Quotation Trends,Teklif Analizi, -Received Items To Be Billed,Faturalanacak Malzemeler, +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, Qty to Order,Sipariş Miktarı, -Requested Items To Be Transferred,Aktarılması istenen Ürünler, -Qty to Transfer,Transfer Yapılacak Miktar, -Salary Register,Maaş Kaydı, +Requested Items To Be Transferred,Transfer edilmesi istenen Ürünler, +Qty to Transfer,Transfer edilecek Miktar, +Salary Register,Maaş Kayıt, Sales Analytics,Satış Analizleri, -Sales Invoice Trends,Satış Faturası Analizi, -Sales Order Trends,Satış Siparişi Analizi, +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 Target Variance based on Item Group,Ürün Grubuna Göre Satış Ortağı Hedef Varyansı, Sales Partner Transaction Summary,Satış Ortağı İşlem Özeti, Sales Partners Commission,Satış Ortakları Komisyonu, Invoiced Amount (Exclusive Tax),Faturalanan Tutar (Hariç Vergi), Average Commission Rate,Ortalama Komisyon Oranı, Sales Payment Summary,Satış Ödeme Özeti, -Sales Person Commission Summary,Satış Personeli Komisyonu Özeti, -Sales Person Target Variance Based On Item Group,Ürün Grubuna göre Satış Elemanı Hedef Sapması, +Sales Person Commission Summary,Satış Personeli Komisyon Özeti, +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ış Kaydı, +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, -Stock Ageing,Stok Yaşlandırma, +Stock Ageing,Stok Yaşlanması, Stock and Account Value Comparison,Stok ve Hesap Değeri Karşılaştırması, -Stock Projected Qty,Stok Öngörülen Miktarı, -Student and Guardian Contact Details,Öğrenci ve Veli İletişim Bilgileri, -Student Batch-Wise Attendance,Öğrenci Toplu Katılım, -Student Fee Collection,Öğrenci Harcı Tahsilatı, +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 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, -Supplier Ledger Summary,Tedarikçi Cari Defter Özeti, +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ı, -TDS Computation Summary,TDS Özet Hesabı, +TDS Computation Summary,TDS Hesap Özeti, TDS Payable Monthly,TDS Aylık Ücretli, -Territory Target Variance Based On Item Group,Ürün Grubuna göre Bölge Hedefi Varyansı, +Territory Target Variance Based On Item Group,Öğe Grubuna Göre Bölge Hedefi Varyansı, Territory-wise Sales,Bölge Satışları, Total Stock Summary,Toplam Stok Özeti, -Trial Balance,Geçici Mizan, -Trial Balance (Simple),Geçici Mizan (Basit), -Trial Balance for Party,Cari için Geçici Mizan, +Trial Balance,Mizan, +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 bazında Öğe Bakiye Yaşı ve Değeri, +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 Gümrükleme, +Bank Clearance,Banka Havalesi, Bank Clearance Detail,Banka Gümrükleme Detayı, -Update Cost Center Name / Number,Maliyet Merkezi Adını / Sunucunu Güncelleme, -Journal Entry Template,Yevmiye Kaydı Şablonu, +Update Cost Center Name / Number,Maliyet Merkezi Adını / Numarasını Güncelleme, +Journal Entry Template,Dergi Giriş Şablonu, Template Title,Şablon Başlığı, -Journal Entry Type,Yevmiye Kaydı Türü, +Journal Entry Type,Yevmiye Kayıt Türü, Journal Entry Template Account,Yevmiye Kayıt Şablon Hesabı, Process Deferred Accounting,Ertelenmiş Muhasebe İşlemi, -Manual entry cannot be created! Disable automatic entry for deferred accounting in accounts settings and try again,Manuel giriş oluşturulamaz! Hesap ayarlarında ertelenmiş muhasebe için otomatik giriş devre dışı bırakın ve tekrar deneyin, -End date cannot be before start date,"Bitiş tarihi, başlangıç bitişinden önce olamaz", -Total Counts Targeted,Hedeflenen Toplam Sayım, -Total Counts Completed,Tamamlanan Toplam Sayım, -Counts Targeted: {0},Hedeflenen Sayım: {0}, -Payment Account is mandatory,Ödeme Hesabı verileri, -"If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission.","İşaretliyse, tutarın tamamı, herhangi bir beyan veya kanıt sunmaktan gelir vergisi hesabından önce vergiye tabi gelirden düşülecektir.", +Manual entry cannot be created! Disable automatic entry for deferred accounting in accounts settings and try again,Manuel giriş oluşturulamaz! Hesap ayarlarında ertelenmiş muhasebe için otomatik girişi devre dışı bırakın ve tekrar deneyin, +End date cannot be before start date,"Bitiş tarihi, başlangıç tarihinden önce olamaz", +Total Counts Targeted,Hedeflenen Toplam Sayımlar, +Total Counts Completed,Tamamlanan Toplam Sayımlar, +Counts Targeted: {0},Hedeflenen Sayımlar: {0}, +Payment Account is mandatory,Ödeme Hesabı zorunludur, +"If checked, the full amount will be deducted from taxable income before calculating income tax without any declaration or proof submission.","İşaretliyse, tutarın tamamı, herhangi bir beyan veya kanıt sunmadan gelir vergisi hesaplanmadan önce vergiye tabi gelirden düşülecektir.", Disbursement Details,Harcama Ayrıntıları, Material Request Warehouse,Malzeme Talebi Deposu, -Select warehouse for material requests,Malzeme aksesuarları için depo seçin, +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 Deposu, -Sets 'Source Warehouse' in each row of the items table.,Ögeler tablosunun her satırında 'Kaynak Depo' ayarlar., -Sets 'Target Warehouse' in each row of the items table.,Ögeler tablosunun her satırında 'Hedef Depo' ayarlar., -Show Cancelled Entries,İptal Edilen Kayıtları Göster, -Backdated Stock Entry,Geriye dönük Stok Hareketi, +Production Plan Material Request Warehouse,Üretim Planı Malzeme Talebi Depo, +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.,Kalem tablosunun her satırında 'Hedef Depo' 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 Ortamlar {} Varlıklar, +{} 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, -Update Bank Clearance Dates,Banka Gümrük Tarihlerini Güncelleme, +Update Bank Clearance Dates,Banka Gümrükleme Tarihlerini Güncelleme, Healthcare Practitioner: ,Sağlık Hekimi:, -Lab Test Conducted: ,Yapılan Laboratuvar Testi: , -Lab Test Event: ,Laboratuvar Test Etkinliği: , -Lab Test Result: ,Laboratuvar Test Sonucu: , -Clinical Procedure conducted: ,Uygulanan Klinik hükümleri: , +Lab Test Conducted: ,Yapılan Laboratuar Testi:, +Lab Test Event: ,Laboratuvar Test Etkinliği:, +Lab Test Result: ,Laboratuvar Test Sonucu:, +Clinical Procedure conducted: ,Uygulanan Klinik Prosedür:, Therapy Session Charges: {0},Terapi Seansı Ücretleri: {0}, -Therapy: ,Terapi: , -Therapy Plan: ,Terapi Planı: , -Total Counts Targeted: ,Hedeflenen Toplam Sayımlar: , -Total Counts Completed: ,Tamamlanan Toplam Sayımlar: , +Therapy: ,Terapi:, +Therapy Plan: ,Terapi Planı:, +Total Counts Targeted: ,Hedeflenen Toplam Sayımlar:, +Total Counts Completed: ,Tamamlanan Toplam Sayımlar:, Andaman and Nicobar Islands,Andaman ve Nikobar Adaları, -Andhra Pradesh,Andra Pradeş, +Andhra Pradesh,Andhra Pradesh, Arunachal Pradesh,Arunaçal Pradeş, Assam,Assam, Bihar,Bihar, Chandigarh,Chandigarh, -Chhattisgarh,Chattisgarh, +Chhattisgarh,Chhattisgarh, Dadra and Nagar Haveli,Dadra ve Nagar Haveli, Daman and Diu,Daman ve Diu, Delhi,Delhi, Goa,Goa, -Gujarat,Gucerat, +Gujarat,Gujarat, Haryana,Haryana, -Himachal Pradesh,Himaşal Pradeş, +Himachal Pradesh,Himachal Pradesh, Jammu and Kashmir,Jammu ve Keşmir, Jharkhand,Carkhand, Karnataka,Karnataka, Kerala,Kerala, Lakshadweep Islands,Lakshadweep Adaları, -Madhya Pradesh,Madya Pradeş, -Maharashtra,Maharaştra, +Madhya Pradesh,Madhya Pradesh, +Maharashtra,Maharashtra, Manipur,Manipur, Meghalaya,Meghalaya, Mizoram,Mizoram, Nagaland,Nagaland, -Odisha,Odişa, +Odisha,Odisha, Other Territory,Diğer Bölge, -Pondicherry,Kiraz, -Punjab,Kalem Kapağı, +Pondicherry,Pondicherry, +Punjab,Pencap, Rajasthan,Rajasthan, Sikkim,Sikkim, Tamil Nadu,Tamil Nadu, Telangana,Telangana, -Tripura,Tripu, -Uttar Pradesh,Uttar Pradeş, +Tripura,Tripura, +Uttar Pradesh,Uttar Pradesh, Uttarakhand,Uttarkand, West Bengal,Batı Bengal, Is Mandatory,Zorunludur, -Published on,Yayınlanma tarihi, -Service Received But Not Billed,Hizmet Alındı ama Faturalandırılmadı, +Published on,yayınlandı, +Service Received But Not Billed,Hizmet Alındı Ama Faturalandırılmadı, Deferred Accounting Settings,Ertelenmiş Hesap Ayarları, -Book Deferred Entries Based On,Defter Ertelenmiş Kayıtları şuna göre, +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şaretlenmezse Yevmiye Kayıtları Taslak durumuna kaydedilir ve manuel olarak gönderilmesi gerekir, -Enable Distributed Cost Center,Dağıtılmış Maliyet Merkezini Etkinleştirin, +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 Fee,İhtar ücreti, Dunning Amount,İhtar Tutarı, Resolved,Çözüldü, Unresolved,Çözülmemiş, Printing Setting,Baskı Ayarı, -Body Text,gövde metni, +Body Text,Gövde metni, Closing Text,Kapanış Metni, -Resolve,Çözüm, +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, @@ -8702,7 +8702,7 @@ Letter or Email Closing Text,Mektup veya E-posta Kapanış Metni, Body and Closing Text Help,Gövde ve Kapanış Metni Yardımı, Overdue Interval,Gecikme Aralığı, Dunning Letter,İhtarname, -"This section allows the user to set the Body and Closing text of the Dunning Letter for the Dunning Type based on language, which can be used in Print.","Bu bölüm, kullanıcılar, Baskıda yapılandırmaları dile bağlı olarak İhtar için İhtar Mektubunun Ana ve Kapanış görüntüsünün türünü düzenlemesine olanak tanır.", +"This section allows the user to set the Body and Closing text of the Dunning Letter for the Dunning Type based on language, which can be used in Print.","Bu bölüm, kullanıcının, Baskıda kullanılabilen dile bağlı olarak İhtar Türü için İhtar Mektubunun Ana ve Kapanış metnini ayarlamasına olanak tanır.", Reference Detail No,Referans Detay No, Custom Remarks,Özel Açıklamalar, Please select a Company first.,Lütfen önce bir Şirket seçin., @@ -8715,10 +8715,10 @@ Opening Amount,Açılış Tutarı, Closing Amount,Kapanış Tutarı, POS Closing Entry Taxes,POS Kapanış Giriş Vergileri, POS Invoice,POS Faturası, -ACC-PSINV-.YYYY.-,ACC-PSTERS-.YYYY.-, +ACC-PSINV-.YYYY.-,ACC-PSINV-.YYYY.-, Consolidated Sales Invoice,Konsolide Satış Faturası, -Return Against POS Invoice,POS Fatura Karşılığı İadesi, -Consolidated,konsolide, +Return Against POS Invoice,POS Faturası Karşılığı İade, +Consolidated,Konsolide, POS Invoice Item,POS Fatura Öğesi, POS Invoice Merge Log,POS Fatura Birleştirme Günlüğü, POS Invoices,POS Faturaları, @@ -8726,7 +8726,7 @@ Consolidated Credit Note,Konsolide Alacak Dekontu, 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ış Girişi Detayı, +POS Opening Entry Detail,POS Açılış Giriş Detayı, POS Payment Method,POS Ödeme Yöntemi, Payment Methods,Ödeme metodları, Process Statement Of Accounts,Hesapların İşlem Bildirimi, @@ -8741,14 +8741,14 @@ Enable Auto Email,Otomatik E-postayı Etkinleştir, Filter Duration (Months),Filtre Süresi (Ay), CC To,CC için, Help Text,Yardım Metni, -Emails Queued,Sıraya alınan E-postalar, +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 Email,Birincil İletişim E-postası, PSOA Cost Center,PSOA Maliyet Merkezi, PSOA Project,PSOA Projesi, ACC-PINV-RET-.YYYY.-,ACC-PINV-RET-.YYYY.-, -Supplier GSTIN,tedarikçi GSTIN, +Supplier GSTIN,Tedarikçi GSTIN, Place of Supply,Tedarik Yeri, Select Billing Address,Fatura Adresini Seç, GST Details,GST Ayrıntıları, @@ -8757,31 +8757,31 @@ Registered Regular,Kayıtlı Normal, Registered Composition,Kayıtlı Beste, Unregistered,Kayıtlı değil, SEZ,SEZ, -Overseas,oryantal, +Overseas,Yurtdışı, UIN Holders,UIN Sahipleri, With Payment of Tax,Verginin Ödenmesi ile, Without Payment of Tax,Vergi Ödemesiz, -Invoice Copy,fatura tiyatrosu, +Invoice Copy,Fatura fotokopisi, Original for Recipient,Alıcı için Orijinal, -Duplicate for Transporter,Nakliyeci için Çoğalt, -Duplicate for Supplier,Tedarikçi için Çoğalt, +Duplicate for Transporter,Transporter için kopya, +Duplicate for Supplier,Tedarikçi için Kopya, Triplicate for Supplier,Tedarikçi için üç kopya, -Reverse Charge,Karşı Ödemeli, +Reverse Charge,Geri tepki, Y,Y, N,N, E-commerce GSTIN,E-ticaret GSTIN, Reason For Issuing document,Belge Düzenleme Nedeni, 01-Sales Return,01-Satış İadesi, -02-Post Sale Discount,02-Satış Sonrası İndirim, +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, -06-Finalization of Provisional assessment,06-Geçici Dğerlemenin Sonuçlandırılması, +05-Change in POS,05-POS'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, -Input Service Distributor,Girdi Hizmet Dağıtıcısı, -Import Of Service,Hizmet İthalatı, -Import Of Capital Goods,Yatırım Malları İthalatı, +Input Service Distributor,Girdi Hizmeti Dağıtıcısı, +Import Of Service,Hizmet İthali, +Import Of Capital Goods,Sermaye Malları İthalatı, Ineligible,Uygun değil, All Other ITC,Tüm Diğer ITC, Availed ITC Integrated Tax,ITC Entegre Vergisinden yararlanıldı, @@ -8795,43 +8795,43 @@ E-Way Bill No.,E-Yol Fatura No., Is Consolidated,Konsolide Edildi, Billing Address GSTIN,Fatura Adresi GSTIN, Customer GSTIN,Müşteri GSTIN, -GST Transporter ID,GST Nakliyeci ID, -Distance (in km),Mesafe (km), +GST Transporter ID,GST Taşıyıcı Kimliği, +Distance (in km),Mesafe (km cinsinden), Road,Yol, Air,Hava, Rail,Demiryolu, -Ship,Denizyolu, +Ship,Gemi, GST Vehicle Type,GST Araç Türü, Over Dimensional Cargo (ODC),Boyutlu Kargo (ODC), Consumer,Tüketici, -Deemed Export,İhracat olarak kabul edildi, -Port Code,Liman Kodu, +Deemed Export,İhracat olarak kabul edilen, +Port Code,Port Kodu, Shipping Bill Number,Kargo Fatura Numarası, Shipping Bill Date,Sevkiyat Fatura Tarihi, Subscription End Date,Abonelik Bitiş Tarihi, Follow Calendar Months,Takvim Aylarını Takip Edin, -If this is checked subsequent new invoices will be created on calendar month and quarter start dates irrespective of current invoice start date,"Bu kontrol edilirse, faturanın mevcut başlangıç dönemlerinde geçen takvim ayı ve üç aylık başlangıç tarihlerinde bir sonraki yeni faturalar oluşturulacaktır.", -Generate New Invoices Past Due Date,Son Tarihi Geçmiş Yeni Faturalar Hesabı, +If this is checked subsequent new invoices will be created on calendar month and quarter start dates irrespective of current invoice start date,"Bu kontrol edilirse, mevcut fatura başlangıç tarihine bakılmaksızın takvim ayı ve üç aylık başlangıç tarihlerinde sonraki yeni faturalar oluşturulacaktır.", +Generate New Invoices Past Due Date,Son Tarihi Geçmiş Yeni Faturalar Oluşturun, New invoices will be generated as per schedule even if current invoices are unpaid or past due date,"Mevcut faturalar ödenmemiş veya vadesi geçmiş olsa bile, plana göre yeni faturalar oluşturulacaktır.", -Document Type ,Belge Türü, +Document Type ,döküman tipi, Subscription Price Based On,Abonelik Fiyatı, Fixed Rate,Sabit Oran, Based On Price List,Fiyat Listesine Göre, Monthly Rate,Aylık Oran, Cancel Subscription After Grace Period,Ek Süreden Sonra Aboneliği İptal Et, -Source State,kaynak devlet, -Is Inter State,Devletlerarası mil, -Purchase Details,Satın alma detayları, +Source State,Kaynak Devlet, +Is Inter State,Inter State mi, +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çebilirsin., -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ırsa, ERPNext, önce bir Satınalma Siparişi oluşturmadan bir Satınalma Faturası veya Fiş oluşturmanızı engelleyin. Bu koruyucu, 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ırsa, ERPNext, önce bir Satınalma Fişi oluşturmadan bir Satınalma Faturası oluşturmanızı engeller. Bu koruma, 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.", +"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ı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 'Evet' 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 'Satın Alma Siparişi Olmadan Satın Alma 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ı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 'Satın Alma Fişi Olmadan Satın Alma Faturası Oluşturmaya İzin Ver' 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, -Signee (Company),İmza Sahibi (Şirket), +Authorised By,Tarafından yetkilendirildi, +Signee (Company),Signee (Şirket), Signed By (Company),İmzalayan (Şirket), First Response Time,İlk Yanıt Süresi, Request For Quotation,Teklif Talebi, @@ -8840,76 +8840,76 @@ Access Token Secret,Erişim Belirteci Sırrı, Add to Topics,Konulara Ekle, ...Adding Article to Topics,... Konulara Makale Ekleme, Add Article to Topics,Konulara Makale Ekle, -This article is already added to the existing topics,Bu makale zaten mevcut üzerine eklendi, +This article is already added to the existing topics,Bu makale zaten mevcut konulara eklendi, Add to Programs,Programlara Ekle, -Programs,programlı, +Programs,Programlar, ...Adding Course to Programs,... Programlara Ders Ekleme, Add Course to Programs,Programlara Ders Ekle, This course is already added to the existing programs,Bu kurs zaten mevcut programlara eklendi, Learning Management System Settings,Öğrenme Yönetim Sistemi Ayarları, -Enable Learning Management System,Öğrenim Yönetim Sistemini Etkinleştirin, +Enable Learning Management System,Öğrenim Yönetim Sistemini Etkinleştir, Learning Management System Title,Öğrenme Yönetim Sistemi Başlığı, ...Adding Quiz to Topics,... Konulara Sınav Ekleniyor, Add Quiz to Topics,Konulara Sınav Ekle, -This quiz is already added to the existing topics,"Bu sınav, mevcut durumda zaten eklendi", +This quiz is already added to the existing topics,"Bu sınav, mevcut konulara zaten eklendi", Enable Admission Application,Kabul Başvurusunu Etkinleştir, EDU-ATT-.YYYY.-,EDU-ATT-.YYYY.-, -Marking attendance,katılım işaretleniyor, +Marking attendance,Katılım işaretleniyor, Add Guardians to Email Group,Velileri E-posta Grubuna Ekle, Attendance Based On,Şuna Göre Katılım, -Check this to mark the student as present in case the student is not attending the institute to participate or represent the institute in any event.\n\n,Öğrencinin herhangi bir durumda bir enstitüye kaydolması veya enstitüyü ifade etmek üzere enstitüye katılmaması durumunda öğrencinin mevcut olarak üniversiteye girmesi için bunu yırtması., +Check this to mark the student as present in case the student is not attending the institute to participate or represent the institute in any event.\n\n,Öğrencinin herhangi bir durumda enstitüye katılmak veya enstitüyü temsil etmek üzere enstitüye katılmaması durumunda öğrenciyi mevcut olarak işaretlemek için bunu işaretleyin., Add to Courses,Kurslara Ekle, ...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 için varsayılan müşteriyi dikkate alır., -The accounts are set by the system automatically but do confirm these defaults,"Hesaplar sistemi tarafından otomatik olarak belirlenir, ancak bu varsayılanları onaylar", +"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., +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, Fixed Error Log,Sabit Hata Günlüğü, -Company {0} already exists. Continuing will overwrite the Company and Chart of Accounts,"{0} şirketi zaten var. Devam etmek, Şirket ve Hesap Planının üzerine yazacaktır.", +Company {0} already exists. Continuing will overwrite the Company and Chart of Accounts,"{0} şirketi zaten var. Devam etmek, Şirket ve Hesap Planının üzerine yazacaktır", Meta Data,Meta Verileri, -Unresolve,Çünkü, +Unresolve,Çöz, Create Document,Belge Oluştur, Mark as unresolved,Çözümlenmemiş olarak işaretle, TaxJar Settings,TaxJar Ayarları, Sandbox Mode,Korumalı Alan Modu, Enable Tax Calculation,Vergi Hesaplamasını Etkinleştir, -Create TaxJar Transaction,TaxJar İşlemi Oluşturma, -Credentials,kimlik bilgileri, +Create TaxJar Transaction,TaxJar İşlemi Oluşturun, +Credentials,Kimlik bilgileri, Live API Key,Canlı API Anahtarı, Sandbox API Key,Sandbox API Anahtarı, Configuration,Yapılandırma, Tax Account Head,Vergi Hesap Başkanı, Shipping Account Head,Sevkiyat Hesap Başkanı, Practitioner Name,Uygulayıcı Adı, -Enter a name for the Clinical Procedure Template,Klinik muhafaza Şablonu için bir ad girin, -Set the Item Code which will be used for billing the Clinical Procedure.,Klinik bölümleri faturalandırmak için kullanım Ürün Kodunu ayarlayın., -Select an Item Group for the Clinical Procedure Item.,Klinik göz Öğesi için bir Öğe Grubu seçin., -Clinical Procedure Rate,Klinik çevre Oranı, -Check this if the Clinical Procedure is billable and also set the rate.,Klinik bölümlerin faturalandırılabilir olup olmadığı kontrol edin ve maliyet de ayarı., -Check this if the Clinical Procedure utilises consumables. Click ,Klinik çevre sarf malzemelerini kullanansa bunu kontrol edin. Tıklayın, +Enter a name for the Clinical Procedure Template,Klinik Prosedür Şablonu için bir ad girin, +Set the Item Code which will be used for billing the Clinical Procedure.,Klinik Prosedürü faturalandırmak için kullanılacak Ürün Kodunu ayarlayın., +Select an Item Group for the Clinical Procedure Item.,Klinik Prosedür Öğesi için bir Öğe Grubu seçin., +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ı 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 davanın faturalandırılması için otomatik olarak bir Öğe oluşturulacaktır. Daha sonra Hastalar için Klinik gözlemler oluştururken bu şablonu kullanabilirsiniz. Şablonlar sizi her fırsatta gereksiz verileri doldurmaktan kurtarır. Ayrıca Laboratuar Testleri, Terapi Oturumları vb. Gibi diğer yapılar için şablonlar oluşturabilirsiniz.", +"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, Descriptive Test Template,Tanımlayıcı Test Şablonu, -"If you want to track Payroll and other HRMS operations for a Practitoner, create an Employee and link it here.","Bir Pratisyen için Bordro ve diğer İKYS'leri takip etmek istiyor, bir çalışanı çalıştırıyor ve burada bulunuyor.", -Set the Practitioner Schedule you just created. This will be used while booking appointments.,"Yeni oluşturacağınız Uygulayıcı Program ayarını yapın. Bu, randevu almaktır.", +"If you want to track Payroll and other HRMS operations for a Practitoner, create an Employee and link it here.","Bir Pratisyen için Bordro ve diğer İKYS işlemlerini takip etmek istiyorsanız, bir Çalışan oluşturun ve buraya bağlayın.", +Set the Practitioner Schedule you just created. This will be used while booking appointments.,"Yeni oluşturduğunuz Uygulayıcı Programını ayarlayın. Bu, randevu alırken kullanılacaktır.", Create a service item for Out Patient Consulting.,Out Patient Consulting için bir hizmet kalemi oluşturun., "If this Healthcare Practitioner works for the In-Patient Department, create a service item for Inpatient Visits.","Bu Sağlık Bakımı Uygulayıcısı Yatan Hasta Departmanı için çalışıyorsa, Yatan Hasta Ziyaretleri için bir hizmet öğesi oluşturun.", Set the Out Patient Consulting Charge for this Practitioner.,Bu Uygulayıcı için Hasta Danışma Ücretini Belirleyin., -"If this Healthcare Practitioner also works for the In-Patient Department, set the inpatient visit charge for this Practitioner.","Bu Sağlık Bakımı Uygulayıcısı aynı zamanda Yatan Hasta Bölümü için çalışıyorsa, bu Uygulayıcı için yatarak hasta ziyareti ücretini ayarlar.", -"If checked, a customer will be created for every Patient. Patient Invoices will be created against this Customer. You can also select existing Customer while creating a Patient. This field is checked by default.","İşaretlenirse, her Hasta için bir müşteri oluşturur. Bu Müşteriye karşı Hastaları Fatura oluşturacaktır. Bir Hasta oluştururken mevcut Müşteriyi de idare eder. Bu alan değişken olarak işaretlidir.", +"If this Healthcare Practitioner also works for the In-Patient Department, set the inpatient visit charge for this Practitioner.","Bu Sağlık Bakımı Uygulayıcısı aynı zamanda Yatan Hasta Bölümü için çalışıyorsa, bu Uygulayıcı için yatarak hasta ziyareti ücretini ayarlayın.", +"If checked, a customer will be created for every Patient. Patient Invoices will be created against this Customer. You can also select existing Customer while creating a Patient. This field is checked by default.","İşaretlenirse, her Hasta için bir müşteri oluşturulur. Bu Müşteriye karşı Hasta Faturaları oluşturulacaktır. Bir Hasta oluştururken mevcut Müşteriyi de seçebilirsiniz. Bu alan varsayılan olarak işaretlidir.", Collect Registration Fee,Kayıt Ücretini Toplayın, -"If your Healthcare facility bills registrations of Patients, you can check this and set the Registration Fee in the field below. Checking this will create new Patients with a Disabled status by default and will only be enabled after invoicing the Registration Fee.","Sağlık hizmetiz Hasta kayıtlarını faturalandırıyorsa, bunu kontrol edebilir ve aşağıdaki alanda Kayıt Ücretini belirleyebilirsiniz. Bunun işaretlenmesi, varsayılan olarak Devre Dışı maliyetlerine sahip yeni Hastalar oluşturacak ve yalnızca Kayıt Ücreti faturalandırma sonrasında etkinleştirilecektir.", -Checking this will automatically create a Sales Invoice whenever an appointment is booked for a Patient.,"Bunu yapılandırmak, Hasta için randevu rezerve kayıtları otomatik olarak bir Satış Faturası oluşturacaktır.", -Healthcare Service Items,Sağlık Hizmet Öğeleri, -"You can create a service item for Inpatient Visit Charge and set it here. Similarly, you can set up other Healthcare Service Items for billing in this section. Click ","Yatan Hasta Ziyaret Ücreti için bir hizmet kalemi oluşturduğunuzu ve buradan ayarlayabilirsiniz. Benzer şekilde, bu faturalama için diğer Sağlık Hizmeti Öğelerini ayarlayabilirsiniz. Tıklayın", -Set up default Accounts for the Healthcare Facility,Sağlık Tesisi için kapsamlı Hesaplar oluşturun, -"If you wish to override default accounts settings and configure the Income and Receivable accounts for Healthcare, you can do so here.","Varsayılan hesabı kullanmak geçersiz kılmak ve Sağlık Hizmetleri için Gelir ve Alacak hesaplarını yönetmek isterseniz, bunu buradan yapabilirsiniz.", +"If your Healthcare facility bills registrations of Patients, you can check this and set the Registration Fee in the field below. Checking this will create new Patients with a Disabled status by default and will only be enabled after invoicing the Registration Fee.","Sağlık kuruluşunuz Hasta kayıtlarını faturalandırıyorsa, bunu kontrol edebilir ve aşağıdaki alanda Kayıt Ücretini belirleyebilirsiniz. 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.", +Checking this will automatically create a Sales Invoice whenever an appointment is booked for a Patient.,"Bunu işaretlemek, Hasta için randevu rezerve edildiğinde otomatik olarak bir Satış Faturası oluşturacaktır.", +Healthcare Service Items,Sağlık Hizmeti Öğeleri, +"You can create a service item for Inpatient Visit Charge and set it here. Similarly, you can set up other Healthcare Service Items for billing in this section. Click ","Yatan Hasta Ziyaret Ücreti için bir hizmet kalemi oluşturabilir ve buradan ayarlayabilirsiniz. Benzer şekilde, bu bölümde faturalama için diğer Sağlık Hizmeti Öğelerini ayarlayabilirsiniz. Tıklayın", +Set up default Accounts for the Healthcare Facility,Sağlık Tesisi için varsayılan Hesaplar oluşturun, +"If you wish to override default accounts settings and configure the Income and Receivable accounts for Healthcare, you can do so here.","Varsayılan hesap ayarlarını geçersiz kılmak ve Sağlık Hizmetleri için Gelir ve Alacak hesaplarını yapılandırmak isterseniz, bunu buradan yapabilirsiniz.", Out Patient SMS alerts,Out Patient SMS uyarıları, -"If you want to send SMS alert on Patient Registration, you can enable this option. Similary, you can set up Out Patient SMS alerts for other functionalities in this section. Click ","Hasta Kaydında SMS uyarısı olmasını istiyorsanız, bu seçeneği etkinleştirebilirsiniz. Benzer şekilde, bu bölümdeki diğer görme için Hasta Dışında SMS uyarıları kurabilirsiniz. Tıklayın", +"If you want to send SMS alert on Patient Registration, you can enable this option. Similary, you can set up Out Patient SMS alerts for other functionalities in this section. Click ","Hasta Kaydında SMS uyarısı göndermek istiyorsanız, bu seçeneği etkinleştirebilirsiniz. Benzer şekilde, bu bölümdeki diğer işlevler için Hasta Dışarıda SMS uyarıları kurabilirsiniz. Tıklayın", Admission Order Details,Kabul Sipariş Ayrıntıları, Admission Ordered For,Kabul İçin Sipariş Verildi, Expected Length of Stay,Beklenen Kalma Süresi, @@ -8919,56 +8919,56 @@ Healthcare Practitioner (Secondary),Sağlık Hekimi (İkincil), Admission Instruction,Kabul Talimatı, Chief Complaint,Baş Şikayet, Medications,İlaçlar, -Investigations,incelemeler, -Discharge Detials,Deşarj Detayları, +Investigations,İncelemeler, +Discharge Detials,Deşarj Detials, Discharge Ordered Date,Tahliye Sipariş Tarihi, Discharge Instructions,Deşarj Talimatları, Follow Up Date,Takip Tarihi, Discharge Notes,Tahliye Notları, -Processing Inpatient Discharge,Yatan hasta Taburcu Edilmesi, +Processing Inpatient Discharge,Yatan Hastanın Taburcu Edilmesi, Processing Patient Admission,Hasta Kabulünün İşlenmesi, -Check-in time cannot be greater than the current time,Giriş saati mevcut durumdan fazla olamaz, +Check-in time cannot be greater than the current time,Giriş saati mevcut saatten fazla olamaz, Process Transfer,İşlem Aktarımı, HLC-LAB-.YYYY.-,HLC-LAB-.YYYY.-, Expected Result Date,Beklenen Sonuç Tarihi, Expected Result Time,Beklenen Sonuç Süresi, -Printed on,baskı tarihi, -Requesting Practitioner,Uygulayıcı İstiyor, -Requesting Department,Talep Eden Departmanı, +Printed on,Baskı tarihi, +Requesting Practitioner,Uygulayıcı İsteniyor, +Requesting Department,Talep Eden Departman, Employee (Lab Technician),Çalışan (Laboratuvar Teknisyeni), Lab Technician Name,Laboratuvar Teknisyeni Adı, Lab Technician Designation,Laboratuvar Teknisyeni Tanımı, Compound Test Result,Bileşik Test Sonucu, Organism Test Result,Organizma Testi Sonucu, -Sensitivity Test Result,Duyarlık Testi Sonucu, +Sensitivity Test Result,Duyarlılık Testi Sonucu, Worksheet Print,Çalışma Sayfası Yazdır, Worksheet Instructions,Çalışma Sayfası Talimatları, Result Legend Print,Sonuç Gösterge Baskısı, Print Position,Baskı Pozisyonu, -Bottom,Alternatif, +Bottom,Alt, Top,Üst, Both,Her ikisi de, -Result Legend,Açıklama Sonuçları, -Lab Tests,laboratuvar testi, +Result Legend,Sonuç Açıklamaları, +Lab Tests,Laboratuvar testleri, No Lab Tests found for the Patient {0},Hasta için Laboratuar Testi bulunamadı {0}, -"Did not send SMS, missing patient mobile number or message content.","SMS, eksik hasta cep telefonu numarası veya mesaj içeriği gönderilirdi.", -No Lab Tests created,Laboratuvar testi oluşturmadı, +"Did not send SMS, missing patient mobile number or message content.","SMS, eksik hasta cep telefonu numarası veya mesaj içeriği gönderilmedi.", +No Lab Tests created,Laboratuvar Testi oluşturulmadı, Creating Lab Tests...,Laboratuvar Testleri Oluşturma ..., Lab Test Group Template,Laboratuvar Test Grubu Şablonu, Add New Line,Yeni Satır Ekle, Secondary UOM,İkincil UOM, -"Single: Results which require only a single input.\n
\nCompound: Results which require multiple event inputs.\n
\nDescriptive: Tests which have multiple result components with manual result entry.\n
\nGrouped: Test templates which are a group of other test templates.\n
\nNo Result: Tests with no results, can be ordered and billed but no Lab Test will be created. e.g.. Sub Tests for Grouped results",Tekli : Yalnızca tek bir giriş gereksinimleri sonuçları.
Bileşik : Birden çok olay girişi gereksinimleri sonuçları.
Tanımlayıcı : Manuel sonuç girişi olan birden fazla sonuç sonucu olan testleri.
Gruplanmış : Diğer test şablonlarından oluşan test şablonları.
Sonuç Yok : Sonuçsuz bölümleri sipariş edilebilir ve faturalandırılabilir ancak Laboratuar Testi oluşturulmayacaktır. . Örneğin. Gruplandırılmış sonuçlar için Alt Testler, +"Single: Results which require only a single input.\n
\nCompound: Results which require multiple event inputs.\n
\nDescriptive: Tests which have multiple result components with manual result entry.\n
\nGrouped: Test templates which are a group of other test templates.\n
\nNo Result: Tests with no results, can be ordered and billed but no Lab Test will be created. e.g.. Sub Tests for Grouped results",Tekli : Yalnızca tek bir giriş gerektiren sonuçlar.
Bileşik : Birden çok olay girişi gerektiren sonuçlar.
Tanımlayıcı : Manuel sonuç girişi olan birden fazla sonuç bileşeni olan testler.
Gruplanmış : Diğer test şablonlarından oluşan test şablonları.
Sonuç Yok : Sonuçsuz testler sipariş edilebilir ve faturalandırılabilir ancak Laboratuar Testi oluşturulmayacaktır. Örneğin. Gruplandırılmış sonuçlar için Alt Testler, "If unchecked, the item will not be available in Sales Invoices for billing but can be used in group test creation. ","İşaretlenmemişse, öğe faturalama için Satış Faturalarında bulunmayacaktır ancak grup testi oluşturmada kullanılabilir.", Description ,Açıklama, -Descriptive Test,Tanımlayıcı Testi, +Descriptive Test,Tanımlayıcı Test, Group Tests,Grup Testleri, -Instructions to be printed on the worksheet,Çalışma dosyası yazdırılacak belgeler, -"Information to help easily interpret the test report, will be printed as part of the Lab Test result.",Test raporunun kolayca yorumlanmasına yardımcı olacak bilgiler Laboratuar Testi sonuçlarının bir parçası olarak yazdırılacaktır., +Instructions to be printed on the worksheet,Çalışma sayfasına yazdırılacak talimatlar, +"Information to help easily interpret the test report, will be printed as part of the Lab Test result.",Test raporunun kolayca yorumlanmasına yardımcı olacak bilgiler Laboratuar Testi sonucunun bir parçası olarak yazdırılacaktır., Normal Test Result,Normal Test Sonucu, Secondary UOM Result,İkincil UOM Sonucu, -Italic,italik, +Italic,İtalik, Underline,Altını çizmek, -Organism,organizma, +Organism,Organizma, Organism Test Item,Organizma Test Öğesi, Colony Population,Koloni Popülasyonu, Colony UOM,Koloni UOM, @@ -8978,14 +8978,14 @@ Alcohol Consumption (Past),Alkol Tüketimi (Geçmiş), Alcohol Consumption (Present),Alkol Tüketimi (Mevcut), Billing Item,Fatura Öğesi, Medical Codes,Tıbbi Kodlar, -Clinical Procedures,Klinik çevreler, +Clinical Procedures,Klinik Prosedürler, Order Admission,Sipariş Kabulü, Scheduling Patient Admission,Hasta Kabulünün Planlanması, Order Discharge,Sipariş Tahliyesi, Sample Details,Örnek Ayrıntılar, Collected On,Toplanma Tarihi, No. of prints,Baskı sayısı, -Number of prints required for labelling the samples,Örnekleri çerçevelemek için gereken sayı baskısı, +Number of prints required for labelling the samples,Örnekleri etiketlemek için gereken baskı sayısı, HLC-VTS-.YYYY.-,HLC-VTS-.YYYY.-, In Time,Zamanında, Out Time,Çıkış Süresi, @@ -8996,47 +8996,47 @@ Shift Request Approver,Vardiya İsteği Onaylayıcısı, PAN Number,PAN Numarası, Provident Fund Account,İhtiyat Fonu Hesabı, MICR Code,MICR Kodu, -Repay unclaimed amount from salary,Talep edilmeyen maaştan geri ödeyin, +Repay unclaimed amount from salary,Talep edilmeyen tutarı maaştan geri ödeyin, Deduction from salary,Maaştan kesinti, -Expired Leaves,Süresi biten İ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 teminat olarak 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ğer Oranı, kredi borçlarının taahhüdünde bulunulan menkul değerin harcanması gerektiğini ifade eder. Herhangi bir kredi için belirtilen değerin altına düşerse bir kredi güvenlik açığı tetiklenir", -If this is not checked the loan by default will be considered as a Demand Loan,"Bu kontrol reddedilirse, varsayılan olarak kredi bir Talep Kredisi olarak kabul edilecektir.", -This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,"Bu hesap, borçludan kredi geri ödemelerini yapmak ve ayrıca borçluya kredi vermek için kullanılır.", +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", +If this is not checked the loan by default will be considered as a Demand Loan,"Bu kontrol edilmezse, varsayılan olarak kredi bir Talep Kredisi olarak kabul edilecektir.", +This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,"Bu hesap, borçludan kredi geri ödemeleri rezervasyonu yapmak ve ayrıca borçluya kredi vermek için kullanılır.", This account is capital account which is used to allocate capital for loan disbursal account ,"Bu hesap, kredi ödeme hesabına sermaye tahsis etmek için kullanılan sermaye hesabıdır.", -This account will be used for booking loan interest accruals,"Bu hesap, kredi faiz tahakkukları için kullanılmasıdır.", -This account will be used for booking penalties levied due to delayed repayments,"Bu hesap, geciken geri ödemeler nedeniyle alma rezervasyon cezaları için kullanımdır.", -Variant BOM,Varyant ürün Reçetesi, +This account will be used for booking loan interest accruals,"Bu hesap, kredi faiz tahakkukları için kullanılacaktır.", +This account will be used for booking penalties levied due to delayed repayments,"Bu hesap, geciken geri ödemeler nedeniyle alınan rezervasyon cezaları için kullanılacaktır.", +Variant BOM,Varyant ürün reçetesi, Template Item,Şablon Öğesi, Select template item,Şablon öğesini seçin, -Select variant item code for the template item {0},{0} kalıp öğeleri için düşünme öğesini seçin, -Downtime Entry,Kesinti/Arıza Süresi Girişi, +Select variant item code for the template item {0},{0} şablon öğesi için varyant öğe kodunu seçin, +Downtime Entry,Kapalı Kalma Süresi Girişi, DT-,DT-, Workstation / Machine,İş İstasyonu / Makine, Operator,Şebeke, -In Mins,Dakika, +In Mins,Dakika içinde, Downtime Reason,Kesinti Nedeni, Stop Reason,Nedeni Durdur, Excessive machine set up time,Aşırı makine kurulum süresi, Unplanned machine maintenance,Planlanmamış makine bakımı, -On-machine press checks,Makine üzerinde press kontrolü, -Machine operator errors,Makine operator hatası, +On-machine press checks,Makine üzerinde baskı kontrolleri, +Machine operator errors,Makine operatörü hataları, Machine malfunction,Makine arızası, -Electricity down,Elektrik kesintisi, -Operation Row Number,Operasyon Satır Numarası, -Operation {0} added multiple times in the work order {1},"Operasyon {0}, iş emrine birden çok kez eklendi {1}", +Electricity down,Elektrik kesildi, +Operation Row Number,İşlem Satır Numarası, +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.

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 Hareketi, ters yıkama olarak bilinir. Mamul malları üretmek için tüketilen hammaddeler, ters yıkama olarak bilinir.

Üretim Girişi yaratılırken, hammadde kalemleri, üretim defterinin ürün reçetelerine göre ters yıkanır. Hammadde kalemlerinin bunun yerine o İş Emrine karşı Yapılan Malzeme Transferi girişine göre yıkanmış tersini 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.

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.

Ü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 oranları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, malzemeler seçilen depolardan gelir. Belirtilmezse, sistem satınalma için malzeme talebi oluşturulacaktır.", -Lead Time,Teslim Süresi, +"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 Yaratın, Invoicing,Faturalama, @@ -9047,15 +9047,15 @@ Membership Print Format,Üyelik Baskı Formatı, Invoice Print Format,Fatura Yazdırma Formatı, Revoke ,İptal et<Key></Key>, You can learn more about memberships in the manual. ,Kılavuzda üyelikler hakkında daha fazla bilgi edinebilirsiniz., -ERPNext Docs,ERPNext Dokumanlar, -Regenerate Webhook Secret,Webhook Sırrını Yeniden Oluşturma, +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, 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'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, @@ -9063,37 +9063,37 @@ House Rent Payment Amount,Konut Kira Ödeme Tutarı, Rented From Date,Kiralandığı Tarih, Rented To Date,Bugüne Kadar Kiralandı, Monthly Eligible Amount,Aylık Uygun Tutar, -Total Eligible HRA Exemption,Toplam Uygun İHD Muafiyeti, +Total Eligible HRA Exemption,Toplam Uygun HRA Muafiyeti, Validating Employee Attendance...,Çalışan Katılımının Doğrulanması ..., Submitting Salary Slips and creating Journal Entry...,Maaş Fişleri Gönderme ve Yevmiye Kaydı Oluşturma ..., Calculate Payroll Working Days Based On,Bordro Çalışma Günlerini Şuna Göre Hesaplayın, -Consider Unmarked Attendance As,İşaretlenmemiş Katılımı Düşünün Olarak, +Consider Unmarked Attendance As,İşaretlenmemiş Katılımı Olarak Düşünün, Fraction of Daily Salary for Half Day,Yarım Gün Günlük Maaş Kesri, Component Type,Bileşen Tipi, Provident Fund,ihtiyat fonu, Additional Provident Fund,Ek İhtiyat Fonu, Provident Fund Loan,İhtiyat Fonu Kredisi, Professional Tax,Mesleki vergi, -Is Income Tax Component,Gelir Vergisi Bileşenleri, +Is Income Tax Component,Gelir Vergisi Bileşeni, Component properties and references ,Bileşen özellikleri ve referansları, Additional Salary ,Ek Maaş, Unmarked days,İşaretlenmemiş günler, Absent Days,Devamsızlık Günleri, -Conditions and Formula variable and example,Koşullar ve Formül değişkeni ve örneği, +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ına göre ayarlanır. Müşterilerin bir tarafından kullanılmasını istemek", +"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", 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 bir Satış Siparişi oluşturmadan bir Satış Faturası veya İrsaliye oluşturmanızı engeller. Bu yapılandırma, Müşteri ana sayfasında 'Satış Siparişi Olmadan Satış Faturası Oluşturulmasına İ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 İrsaliye oluşturmadan Satış Faturası oluşturmanızı engeller. Bu yapılandırma, belirli bir Müşteri için Müşteri ana sayfasındaki 'İrsaliye Olmadan Satış Faturası Oluşturulmasına İzin Ver' onay kutusu etkinleştirilerek geçersiz kılınabilir.", -Default Warehouse for Sales Return,Satış beyannamesi için varsayılan Depo, -Default In Transit Warehouse,Transit Depo Temerrüt, -Enable Perpetual Inventory For Non Stock Items,Stok Dışı Kalemler İçin Sürekli Envanteri Etkinleştirin, +"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 Teslimat Notu 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 Teslimat Notu oluşturmadan Satış Faturası oluşturmanızı engeller. Bu yapılandırma, Müşteri ana sayfasındaki 'Teslimat Notu Olmadan Satış Faturası Oluşturmaya İzin Ver' 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, HRA Settings,HRA Ayarları, -Basic Component,Temel Bileşenler, -HRA Component,HRA Bileşenleri, -Arrear Component,Ödenmemiş Bileşenler, -Please enter the company name to confirm,Lütfen onaylamak için şirket adını giriniz, +Basic Component,Temel Bileşen, +HRA Component,HRA Bileşeni, +Arrear Component,Ödenmemiş Bileşen, +Please enter the company name to confirm,Lütfen onaylamak için şirket adını girin, Quotation Lost Reason Detail,Teklif Kayıp Nedeni Ayrıntıları, Enable Variants,Çeşitleri Etkinleştir, Save Quotations as Draft,Teklifleri Taslak Olarak Kaydet, @@ -9101,124 +9101,124 @@ MAT-DN-RET-.YYYY.-,MAT-DN-RET-.YYYY.-, Please Select a Customer,Lütfen Müşteri Seçiniz, Against Delivery Note Item,Sevk irsaliyesi kalemine karşı, Is Non GST ,GST Değildir, -Image Description,Görüntü yayını, -Transfer Status,Aktarım durumu, +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,Transit Ekle, +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, Öğe Adı, girilen Öğe Koduna göre belirlenir. Öğelerin bir tarafından kullanılmasını istemek", -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 Depoya 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 verecek. Bu seçeneği kullanma, kullanma araçlarına bağlıdır. Bu seçenek işaretlendiğinde, sistem negatif stoka neden olan bir işlemi engellemeden önce devreye alınır.", +"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'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 bulmak için her alt tablonun üzerinde 'Barkod Tara' yaklaşmak., -"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 çıkarma esas tesisi 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ınmalıdır.", + 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ı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 Şartları, -On Hold Since,O zaman beri beklemede, +Service Level Agreement Status,Hizmet Seviyesi Sözleşme Durumu, +On Hold Since,O zamandan beri beklemede, Total Hold Time,Toplam Tutma Süresi, Response Details,Yanıt Ayrıntıları, 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} yolcularından beri beklemede", -Pause SLA On Status,Durum Açıkken SLA'yı Duraklat, -Pause SLA On,SLA'yı Duraklat, +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, Greetings Section,Selamlar Bölümü, Greeting Title,Tebrik Başlığı, Greeting Subtitle,Karşılama Altyazısı, -Youtube ID,Youtube kesin, +Youtube ID,Youtube kimliği, Youtube Statistics,Youtube İstatistikleri, Views,Görüntüleme, Dislikes,Beğenmeme sayısı, -Video Settings,Video Ayarları, -Enable YouTube Tracking,YouTube izlemeyi Etkinleştirin, +Video Settings,Video ayarları, +Enable YouTube Tracking,YouTube İzlemeyi Etkinleştirin, 30 mins,30 dakika, -1 hr,1 saat, -6 hrs,6 saat, -Patient Progress,Hasta idaresi, +1 hr,1 sa., +6 hrs,6 sa., +Patient Progress,Hasta İlerlemesi, Targetted,Hedeflenen, Score Obtained,Elde Edilen Puan, -Sessions,oturumlar, -Average Score,ortalama değil, +Sessions,Oturumlar, +Average Score,Not ortalaması, Select Assessment Template,Değerlendirme Şablonunu Seçin, out of ,dışında, -Select Assessment Parameter,Değerlendirme Parametrelerini Seçin, +Select Assessment Parameter,Değerlendirme Parametresini Seçin, Gender: ,Cinsiyet:, -Contact: ,iletişim:, +Contact: ,İletişim:, Total Therapy Sessions: ,Toplam Terapi Seansları:, Monthly Therapy Sessions: ,Aylık Terapi Seansları:, Patient Profile,Hasta Profili, -Point Of Sale,Satış Noktası, +Point Of Sale,Satış noktası, Email sent successfully.,E-posta başarıyla gönderildi., -Search by invoice id or customer name,Fatura adresini veya müşteri adına göre arayın!, +Search by invoice id or customer name,Fatura kimliği veya müşteri adına göre arayın, Invoice Status,Fatura Durumu, -Filter by invoice status,Faturalandırma hızına göre filtrele, -Select item group,Öğe grubu seçin, +Filter by invoice status,Fatura durumuna göre filtrele, +Select item group,Öğe grubunu seçin, 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.,İndirimini yüzde girin., -Discount cannot be greater than 100%,İndirim %100'den fazla olamaz, +Enter discount percentage.,İndirim yüzdesini girin., +Discount cannot be greater than 100%,İndirim% 100'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., -Item will be removed since no serial / batch no selected.,Seri / parça içeriğinden dolayı ürün kaldırılacaktır., +Item will be removed since no serial / batch no selected.,Seri / parti seçilmediğinden ürün kaldırılacak., Discount (%),İndirim (%), -You cannot submit the order without payment.,Siparişi ödemeden gönderemezsiniz., +You cannot submit the order without payment.,Siparişi ödeme yapmadan gönderemezsiniz., You cannot submit empty order.,Boş sipariş veremezsiniz., To Be Paid,Ödenecek, -Create POS Opening Entry,POS Açma Girişi Oluşturma, +Create POS Opening Entry,POS Açılış Girişi Oluşturun, Please add Mode of payments and opening balance details.,Lütfen Ödeme Modu ve açılış bakiyesi ayrıntılarını ekleyin., Toggle Recent Orders,Son Siparişleri Değiştir, Save as Draft,Taslak olarak kaydet, -You must add atleast one item to save it as draft.,Taslak olarak beklemek için en az bir öğe eklemelisiniz., -There was an error saving the document.,Belgeyi geçirirken bir hata oluştu., +You must add atleast one item to save it as draft.,Taslak olarak kaydetmek için en az bir öğe eklemelisiniz., +There was an error saving the document.,Belgeyi kaydederken bir hata oluştu., You must select a customer before adding an item.,Bir öğe eklemeden önce bir müşteri seçmelisiniz., 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 ID,Malzeme Listesi Kimliği, +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 Teslimat Tutarı, +Total Delivered Amount,Toplam Teslim Tutarı, Downtime Analysis,Kesinti Analizi, -Machine,Makina, +Machine,Makine, 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", +"""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ü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,Tarihe göre Dönem, -Date Based On,Tarihe göre, +Period Based On,Dayalı Dönem, +Date Based On,Dayalı Tarih, {0} and {1} are mandatory,{0} ve {1} zorunludur, -Consider Accounting Dimensions,Muhasebe Boyutlarını Dikkate al, +Consider Accounting Dimensions,Muhasebe Boyutlarını Düşünün, Income Tax Deductions,Gelir Vergisi Kesintileri, -Income Tax Component,Gelir Vergisi Bileşenleri, +Income Tax Component,Gelir Vergisi Bileşeni, 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ı, Job Card Summary,İş Kartı Özeti, -Id,ID, +Id,İD, Time Required (In Mins),Gereken Zaman (Dakika Olarak), -From Posting Date,Baş. Muhasebe Tarihi, -To Posting Date,Bitiş Muhasebe Tarihi, -No records found,Kayıt bulunamadı, -Customer/Lead Name,Müşteri / Aday Adı, +From Posting Date,Gönderme Tarihinden, +To Posting Date,İlan Tarihine, +No records found,kayıt bulunamadı, +Customer/Lead Name,Müşteri / Kurşun Adı, Unmarked Days,İşaretlenmemiş Günler, Jan,Oca, Feb,Şubat, Mar,Mar, -Apr,Niş, -Aug,ağustos, -Sep,eylül, +Apr,Nis, +Aug,Ağu, +Sep,Eylül, Oct,Ekim, Nov,Kasım, Dec,Aralık, @@ -9228,31 +9228,31 @@ Order Qty,Sipariş Miktarı, Raw Material Code,Hammadde Kodu, Raw Material Name,Hammadde Adı, Allotted Qty,Ayrılan Miktar, -Expected Arrival Date,Beklenilen tarihi, +Expected Arrival Date,Beklenilen varış tarihi, Arrival Quantity,Varış Miktarı, Raw Material Warehouse,Hammadde Deposu, -Order By,tarafından sipariş, -Include Sub-assembly Raw Materials,Alt Montaj ilk madde ve malzemeleri Dahil Et, +Order By,Tarafından sipariş, +Include Sub-assembly Raw Materials,Alt Montaj Hammaddelerini Dahil Et, Professional Tax Deductions,Profesyonel Vergi İndirimleri, -Program wise Fee Collection,Program bazında Ücret Toplama, +Program wise Fee Collection,Program bazlı Ücret Toplama, Fees Collected,Toplanan Ücretler, -Project Summary,Proje Açıklaması, +Project Summary,Proje özeti, Total Tasks,Toplam Görev, Tasks Completed,Tamamlanan Görevler, Tasks Overdue,Gecikmiş Görevler, Completion,Tamamlanma, -Provident Fund Deductions,Yardım Sandığı Kesintileri, +Provident Fund Deductions,İhtiyat Fonu Kesintileri, Purchase Order Analysis,Satınalma Siparişi Analizi, 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, -Total Received Amount,Toplam Slınan Tutar, +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, Lead Time (Days),Teslim Süresi (Gün), -Include Expired,Süresi dolanları dahil et, +Include Expired,Süresi Dolan, Recruitment Analytics,İşe Alım Analitiği, Applicant name,Başvuranın ismi, Job Offer status,İş Teklifi durumu, @@ -9262,162 +9262,162 @@ Salary Payments Based On Payment Mode,Ödeme Moduna Göre Maaş Ödemeleri, Salary Payments via ECS,ECS ile Maaş Ödemeleri, Account No,Hesap No, IFSC,IFSC, -MICR,MİKR, +MICR,MICR, Sales Order Analysis,Satış Siparişi Analizi, 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 Adedi ve Seri No Sayısı Karşılaştırması, -Serial No Count,Seri No Sayısı, +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 üretim, -Lead Time (in mins),Teslim Süresi (dakika ölçüsü), +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, Barnch,Barnch, Select a Company,Şirket Seçin, -Opportunity {0} created,{0} birlikteliği, -Kindly select the company first,Lütfen önce şirketini seçin, +Opportunity {0} created,{0} fırsatı oluşturuldu, +Kindly select the company first,Lütfen önce şirketi seçin, Please enter From Date and To Date to generate JSON,JSON oluşturmak için lütfen Başlangıç Tarihi ve Bitiş Tarihi girin, -PF Account,PF Hesabı, +PF Account,KM Hesabı, PF Amount,PF Miktarı, Additional PF,Ek PF, PF Loan,KM Kredisi, Download DATEV File,DATEV Dosyasını İndir, -Numero has not set in the XML file,Numero XML kurulumunda ayarlanmadı, -Inward Supplies(liable to reverse charge),İç Malzemeler (ters ücretle kiralama), -This is based on the course schedules of this Instructor,"Bu, bu Eğitmenin kurs programlarına göre", +Numero has not set in the XML file,Numero XML dosyasında ayarlanmadı, +Inward Supplies(liable to reverse charge),İç Malzemeler (ters ücret ödemekle yükümlüdür), +This is based on the course schedules of this Instructor,"Bu, bu Eğitmenin kurs programlarına dayanmaktadır", Course and Assessment,Kurs ve Değerlendirme, Course {0} has been added to all the selected programs successfully.,"{0} kursu, seçilen tüm programlara başarıyla eklendi.", Programs updated,Programlar güncellendi, -Program and Course,Program ve Kurslar, -{0} or {1} is mandatory,{0} veya {1} yaptırımları, +Program and Course,Program ve Kurs, +{0} or {1} is mandatory,{0} veya {1} zorunludur, Mandatory Fields,Zorunlu alanlar, Student {0}: {1} does not belong to Student Group {2},"Öğrenci {0}: {1}, {2} Öğrenci Grubuna ait değil", Student Attendance record {0} already exists against the Student {1},Öğrenci Katılım kaydı {0} Öğrenci aleyhine zaten mevcut {1}, Duplicate Entry,Yinelenen Giriş, -Course and Fee,Kür ve Ücret, +Course and Fee,Kurs ve Ücret, Not eligible for the admission in this program as per Date Of Birth,Doğum Tarihine göre bu programa giriş için uygun değil, -Topic {0} has been added to all the selected courses successfully.,"{0} barındırılan, seçilen tüm kurslara başarıyla eklendi.", +Topic {0} has been added to all the selected courses successfully.,"{0} konusu, seçilen tüm kurslara başarıyla eklendi.", Courses updated,Kurslar güncellendi, -{0} {1} has been added to all the selected topics successfully.,"{0} {1}, seçilmiş tüm geçti başarıyla eklendi.", +{0} {1} has been added to all the selected topics successfully.,"{0} {1}, seçilen tüm konulara başarıyla eklendi.", Topics updated,Konular güncellendi, Academic Term and Program,Akademik Dönem ve Program, -Please remove this item and try to submit again or update the posting time.,Lütfen bu öğeyi kullanın ve tekrar göndermeyi deneyin veya gönderme zamanını güncelleyin., -Failed to Authenticate the API key.,API anahtarının anahtarı doğrulanamadı., +Please remove this item and try to submit again or update the posting time.,Lütfen bu öğeyi kaldırın ve tekrar göndermeyi deneyin veya gönderme zamanını güncelleyin., +Failed to Authenticate the API key.,API anahtarının kimliği doğrulanamadı., Invalid Credentials,Geçersiz kimlik bilgileri, URL can only be a string,URL yalnızca bir dize olabilir, -"Here is your webhook secret, this will be shown to you only once.","İşte web kancası sırrınız, bu boyutu yalnızca bir kez gösterecek.", -The payment for this membership is not paid. To generate invoice fill the payment details,Bu üyelikle ödeme için yapılmamaktadır. Fatura oluşturmak için ödeme ayrıntılarını doldurmak, +"Here is your webhook secret, this will be shown to you only once.","İşte web kancası sırrınız, bu size yalnızca bir kez gösterilecek.", +The payment for this membership is not paid. To generate invoice fill the payment details,Bu üyelik için ödeme yapılmamaktadır. Fatura oluşturmak için ödeme ayrıntılarını doldurun, An invoice is already linked to this document,Bu belgeye zaten bir fatura bağlı, -No customer linked to member {},{}Üyesine bağlı müşteri yok, +No customer linked to member {},{} Üyesine bağlı müşteri yok, You need to set Debit Account in Membership Settings,Üyelik Ayarlarında Borç Hesabı ayarlamanız gerekiyor, -You need to set Default Company for invoicing in Membership Settings,Üyelik Yapılandırmasında faturalandırma için Varsayılan Şirket ayarlamanız gerekir, -You need to enable Send Acknowledge Email in Membership Settings,Üyelik Ayarlarında Onay E-postası Gönder'i etkinleştirmeniz gerekir, -Error creating membership entry for {0},{0} için üyelik girişi oluştururken hata oluştu, +You need to set Default Company for invoicing in Membership Settings,Üyelik Ayarlarında faturalandırma için Varsayılan Şirket ayarlamanız gerekir, +You need to enable Send Acknowledge Email in Membership Settings,Üyelik Ayarlarında Onay E-postası Gönder'i 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 toplama", +End Date must not be lesser than Start Date,"Bitiş Tarihi, Başlangıç Tarihinden küçük olmamalıdır", Employee {0} already has Active Shift {1}: {2},Çalışan {0} zaten Aktif Vardiyaya sahip {1}: {2}, from {0},{0}, to {0},{0}, -Please select Employee first.,Lütfen önce çalıştır seçin., +Please select Employee first.,Lütfen önce Çalışan seçin., Please set {0} for the Employee or for Department: {1},Lütfen Çalışan veya Departman için {0} ayarlayın: {1}, 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' Durumunda Vardiya İsteği gönderilebilir, -Shift Assignment: {0} created for Employee: {1},Vardiya Ataması: {0} Çalışan için yayınladı: {1}, +Only Shift Request with status 'Approved' and 'Rejected' can be submitted,Yalnızca 'Onaylandı' ve 'Reddedildi' 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 Onaylayabilirim., +Only Approvers can Approve this Request.,Bu İsteği Yalnızca Onaylayanlar Onaylayabilir., Asset Value Analytics,Varlık Değeri Analitiği, Category-wise Asset Value,Kategori Bazında Varlık Değeri, Total Assets,Toplam Varlıklar, 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 yetkilidir.", +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ı, -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ığını iptal etmeden önce hepsini tamamlamanız gerekir., +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,Kırsa Dön, +Back to Course,Kursa dönüş, Finish Topic,Konuyu Bitir, -Mins,Dakikalar, +Mins,Dakika, by,tarafından, Back to,Geri dön, -Enrolling...,Kaydediliyor..., +Enrolling...,Kaydediliyor ..., You have successfully enrolled for the program ,Programa başarıyla kaydoldunuz, Enrolled,Kayıtlı, -Watch Intro,Tanıtım İzle, +Watch Intro,Tanıtımı İzle, We're here to help!,Yardım etmek için buradayız!, Frequently Read Articles,Sık Okunan Makaleler, -Please set a default company address,Lütfen varsayılan bir şirket adresi ayarı, +Please set a default company address,Lütfen varsayılan bir şirket adresi ayarlayın, {0} is not a valid state! Check for typos or enter the ISO code for your state.,{0} geçerli bir eyalet değil! Yazım hatalarını kontrol edin veya eyaletinizin ISO kodunu girin., -Error occured while parsing Chart of Accounts: Please make sure that no two accounts have the same name,Hesap Planı bölünürken hata oluştu: Lütfen iki hesabın aynı ada sahibi olduğundan emin olun, +Error occured while parsing Chart of Accounts: Please make sure that no two accounts have the same name,Hesap Planı ayrıştırılırken hata oluştu: Lütfen iki hesabın aynı ada sahip olmadığından emin olun, Plaid invalid request error,Ekose geçersiz istek hatası, -Please check your Plaid client ID and secret values,Lütfen Plaid müşteri kimliklerinizi ve gizli değerlerinizi kontrol edin, +Please check your Plaid client ID and secret values,Lütfen Plaid müşteri kimliğinizi ve gizli değerlerinizi kontrol edin, Bank transaction creation error,Banka işlemi oluşturma hatası, -Unit of Measurement,ölçü birimi, +Unit of Measurement,Ölçü birimi, Fiscal Year {0} Does Not Exist,Mali Yıl {0} Mevcut Değil, Row # {0}: Returned Item {1} does not exist in {2} {3},"Satır # {0}: İade Edilen Öğe {1}, {2} {3} içinde mevcut değil", 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çinde {} öğe için izniniz yok., +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 belirlenmiş sonuçlara göre güncelleme yapılmasına izin verilmiyor., +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., 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.", 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ınmıştır", +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, -Row #{}: You cannot add postive quantities in a return invoice. Please remove item {} to complete the return.,Satır # {}: Bir iade faturasına pozitif miktarlar ekleyemezsiniz. İadeyi muhafaza etmek için lütfen {} aracını kaldırın., -The selected change account {} doesn't belongs to Company {}.,"Seçilen değişiklik hesabı {}, {} suça ait değil.", +Row #{}: You cannot add postive quantities in a return invoice. Please remove item {} to complete the return.,Satır # {}: Bir iade faturasına pozitif miktarlar ekleyemezsiniz. İadeyi tamamlamak için lütfen {} öğesini kaldırın., +The selected change account {} doesn't belongs to Company {}.,"Seçilen değişiklik hesabı {}, {} Şirketine ait değil.", Atleast one invoice has to be selected.,En az bir fatura seçilmelidir., -Payment methods are mandatory. Please add at least one payment method.,Ödeme yöntemleri. Lütfen en az bir ödeme yöntemini ekleyin., +Payment methods are mandatory. Please add at least one payment method.,Ödeme yöntemleri zorunludur. Lütfen en az bir ödeme yöntemi ekleyin., Please select a default mode of payment,Lütfen varsayılan bir ödeme şekli seçin, -You can only select one mode of payment as default,Varsayılan olarak yalnızca bir ödeme yöntemi, +You can only select one mode of payment as default,Varsayılan olarak yalnızca bir ödeme şekli seçebilirsiniz, Missing Account,Eksik Hesap, -Customers not selected.,Müşteriler beklentisiydi., +Customers not selected.,Müşteriler seçilmedi., 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 giriniz, -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, +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, 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 tahsisat tablosuna Dağıtılmış Maliyet Merkezi eklenemez., -Cost Center with enabled distributed cost center can not be converted to group,Dağıtılmış maliyet merkezi etkinleştirilmiş Maliyet Merkezi tablosu dönüştürülemez, -Cost Center Already Allocated in a Distributed Cost Center cannot be converted to group,Dağıtılmış bir Maliyet Merkezinde Zaten Tahsis Edilmiş Maliyet Merkezi birimi dönüştürülemez, +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., +Cost Center with enabled distributed cost center can not be converted to group,Dağıtılmış maliyet merkezi etkinleştirilmiş Maliyet Merkezi gruba dönüştürülemez, +Cost Center Already Allocated in a Distributed Cost Center cannot be converted to group,Dağıtılmış bir Maliyet Merkezinde Zaten Tahsis Edilmiş Maliyet Merkezi gruba dönüştürülemez, Trial Period Start date cannot be after Subscription Start Date,"Deneme Süresi Başlangıç tarihi, Abonelik Başlangıç Tarihinden sonra olamaz", -Subscription End Date must be after {0} as per the subscription plan,"Abonelik Bitiş Tarihi, üyelik planına göre {0} hattı sonra olmalıdır", -Subscription End Date is mandatory to follow calendar months,Takvim aylarını takip etmek için Abonelik Bitiş Tarihi cezaları, -Row #{}: POS Invoice {} is not against customer {},Satır # {}: POS Faturası {} satışı karşı değil {}, -Row #{}: POS Invoice {} is not submitted yet,Satır # {}: POS Faturası {} hemen gönderilirdi, +Subscription End Date must be after {0} as per the subscription plan,"Abonelik Bitiş Tarihi, abonelik planına göre {0} tarihinden sonra olmalıdır", +Subscription End Date is mandatory to follow calendar months,Takvim aylarını takip etmek için Abonelik Bitiş Tarihi zorunludur, +Row #{}: POS Invoice {} is not against customer {},Satır # {}: POS Faturası {} müşteriye karşı değil {}, +Row #{}: POS Invoice {} is not submitted yet,Satır # {}: POS Faturası {} henüz gönderilmedi, Row #{}: POS Invoice {} has been {},Satır # {}: POS Faturası {} {}, -No Supplier found for Inter Company Transactions which represents company {0},{0} şirketini temsil eden Şirketler Arası İşlemler için Tedarikçi Bulunmuyor, +No Supplier found for Inter Company Transactions which represents company {0},{0} şirketini temsil eden Şirketler Arası İşlemler için Tedarikçi bulunamadı, No Customer found for Inter Company Transactions which represents company {0},{0} şirketini temsil eden Şirketler Arası İşlemler için Müşteri bulunamadı, Invalid Period,Geçersiz Dönem, Selected POS Opening Entry should be open.,Seçilen POS Açılış Girişi açık olmalıdır., Invalid Opening Entry,Geçersiz Açılış Girişi, -Please set a Company,Lütfen bir Şirket belirledi, -"Sorry, this coupon code's validity has not started","Üzgünüz, bu kupon panelinin geçerliliği başlamadı", -"Sorry, this coupon code's validity has expired","Üzgünüz, bu kupon perdenizin geçerliliği sona erdi", +Please set a Company,Lütfen bir Şirket belirleyin, +"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" birleştirmeler için {0} alan kullanımları, +For the 'Apply Rule On Other' condition the field {0} is mandatory,"Kuralı Diğerine Uygula" koşulu için {0} alanı zorunludur, {1} Not in Stock,{1} Stokta Yok, -Only {0} in Stock for item {1},{1} öğe için yalnızca {0} Stokta, -Please enter a coupon code,Lütfen bir kupon kodunu giriniz, -Please enter a valid coupon code,Lütfen geçerli bir kupon kodunu girin, -Invalid Child Procedure,Geçersiz Çocuk cinayeti, -Import Italian Supplier Invoice.,İtalyan tedarikçisi 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şlerini yapmak için gereklidir.", - Here are the options to proceed:,Devam etmek için seçenekler bandı:, -"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ı öğe olarak işlem görüyorsa, lütfen {0} Öğe tablosundaki 'Sıfır Değerleme Oranına İzin Ver'i etkinleştirin.", +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, +Please enter a valid coupon code,Lütfen geçerli bir kupon kodu girin, +Invalid Child Procedure,Geçersiz Çocuk Prosedürü, +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 not, you can Cancel / Submit this entry ","Değilse, bu girişi İptal edebilir / Gönderebilirsiniz", - performing either one below:,evli birini gerçekleştirme:, + 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., Mention Valuation Rate in the Item master.,Öğe ana bilgisinde Değerleme Oranından bahsedin., Valuation Rate Missing,Değerleme Oranı Eksik, @@ -9426,17 +9426,17 @@ Quantity Mismatch,Miktar Uyuşmazlığı, "Please Restock Items and Update the Pick List to continue. To discontinue, cancel the Pick List.",Devam etmek için lütfen Ürünleri Yeniden Stoklayın ve Seçim Listesini Güncelleyin. Devam etmemek için Seçim Listesini iptal edin., Out of Stock,Stoklar tükendi, {0} units of Item {1} is not available.,{0} Öğe birimleri {1} mevcut değil., -Item for row {0} does not match Material Request,"{0} tanımlama için öğe, Malzeme İsteği ile eşleşmiyor", -Warehouse for row {0} does not match Material Request,"{0} bilgi için depo, Malzeme Talebiyle eşleşmiyor", +Item for row {0} does not match Material Request,"{0} satırı için öğe, Malzeme İsteği ile eşleşmiyor", +Warehouse for row {0} does not match Material Request,"{0} satırı için depo, Malzeme Talebiyle eşleşmiyor", Accounting Entry for Service,Hizmet için Muhasebe Girişi, -All items have already been Invoiced/Returned,Tüm sarf malzemeleri zaten faturalandırıldı / İade edildi, -All these items have already been Invoiced/Returned,Tüm bu tüketim zaten faturalandırıldı / İade edildi, +All items have already been Invoiced/Returned,Tüm öğeler zaten Faturalandırıldı / İade edildi, +All these items have already been Invoiced/Returned,Tüm bu öğeler zaten Faturalandırıldı / İade edildi, Stock Reconciliations,Stok Mutabakatları, Merge not allowed,Birleştirmeye izin verilmiyor, -The following deleted attributes exist in Variants but not in the Template. You can either delete the Variants or keep the attribute(s) in template.,aşağıdaki silinmiş öznitelikler Varyantlarda mevcuttur ancak Şablonda yoktur. Varyantları silebilir veya kullanım şablonunda tutabilirsiniz., +The following deleted attributes exist in Variants but not in the Template. You can either delete the Variants or keep the attribute(s) in template.,Aşağıdaki silinmiş öznitelikler Varyantlarda mevcuttur ancak Şablonda yoktur. Varyantları silebilir veya nitelikleri şablonda tutabilirsiniz., Variant Items,Varyant Öğeler, Variant Attribute Error,Varyant Öznitelik Hatası, -The serial no {0} does not belong to item {1},"Seri no {0}, {1} ayarı ait değil", +The serial no {0} does not belong to item {1},"Seri no {0}, {1} öğesine ait değil", There is no batch found against the {0}: {1},{0} için grup bulunamadı: {1}, Completed Operation,Tamamlanan İşlem, Work Order Analysis,İş Emri Analizi, @@ -9456,146 +9456,146 @@ Total Forecast (Future Data),Toplam Tahmin (Gelecek Veriler), Based On Document,Belgeye Dayalı, Based On Data ( in years ),Verilere Dayalı (yıl olarak), Smoothing Constant,Sabit Düzeltme, -Please fill the Sales Orders table,Lütfen Satış Siparişleri tablosunu doldurunuz, +Please fill the Sales Orders table,Lütfen Satış Siparişleri tablosunu doldurun, Sales Orders Required,Gerekli Satış Siparişleri, Please fill the Material Requests table,Lütfen Malzeme Talepleri tablosunu doldurun, Material Requests Required,Gerekli Malzeme Talepleri, -Items to Manufacture are required to pull the Raw Materials associated with it.,Üretilecek Öğelerin yanında bulunan ilk madde ve malzemeleri çekmesi gerekir., +Items to Manufacture are required to pull the Raw Materials associated with it.,Üretilecek Öğelerin kendisiyle ilişkili Ham Maddeleri çekmesi gerekir., Items Required,Gerekli Öğeler, Operation {0} does not belong to the work order {1},"{0} işlemi, {1} iş emrine ait değil", -Print UOM after Quantity,Miktardan Sonra Birimi Yazdır, -Set default {0} account for perpetual inventory for non stock items,Stokta olmayan sunucular için kalıcı envanter için yerleşik {0} hesabını ayarladı, +Print UOM after Quantity,Miktardan Sonra UOM Yazdır, +Set default {0} account for perpetual inventory for non stock items,Stokta olmayan öğeler için kalıcı envanter için varsayılan {0} hesabını ayarlayın, Loan Security {0} added multiple times,Kredi Güvenliği {0} birden çok kez eklendi, -Loan Securities with different LTV ratio cannot be pledged against one loan,Farklı LTV kredilerine sahip Kredi Menkul Kıymetleri tek bir krediye karşı rehin olamaz, -Qty or Amount is mandatory for loan security!,Kredi kurtarma için Miktar veya Miktar müşterileri!, -Only submittted unpledge requests can be approved,Yalnızca gönderilmiş makbuz işlemleri onaylanabilir, -Interest Amount or Principal Amount is mandatory,Faiz Tutarı veya Anapara Tutarı yaptırımları, +Loan Securities with different LTV ratio cannot be pledged against one loan,Farklı LTV oranına sahip Kredi Menkul Kıymetleri tek bir krediye karşı rehin edilemez, +Qty or Amount is mandatory for loan security!,Kredi güvenliği için Miktar veya Miktar zorunludur!, +Only submittted unpledge requests can be approved,Yalnızca gönderilmiş makbuz talepleri onaylanabilir, +Interest Amount or Principal Amount is mandatory,Faiz Tutarı veya Anapara Tutarı zorunludur, Disbursed Amount cannot be greater than {0},Ödenen Tutar en fazla {0} olabilir, Row {0}: Loan Security {1} added multiple times,Satır {0}: Kredi Teminatı {1} birden çok kez eklendi, -Row #{0}: Child Item should not be a Product Bundle. Please remove Item {1} and Save,"Satır # {0}: Alt Öğe, Ürün Paketi paketi. Lütfen {1} Öğesini yükleme ve Kaydedin", +Row #{0}: Child Item should not be a Product Bundle. Please remove Item {1} and Save,"Satır # {0}: Alt Öğe, Ürün Paketi olmamalıdır. Lütfen {1} Öğesini kaldırın ve Kaydedin", Credit limit reached for customer {0},{0} müşterisi için kredi limitine ulaşıldı, -Could not auto create Customer due to the following missing mandatory field(s):,Aşağıdaki zorunlu grupları eksik olması müşteri nedeniyle otomatik olarak oluşturulamadı:, -Please create Customer from Lead {0}.,Lütfen {0} Müşteri Adayından oluşturun., +Could not auto create Customer due to the following missing mandatory field(s):,Aşağıdaki zorunlu alanların eksik olması nedeniyle Müşteri otomatik olarak oluşturulamadı:, +Please create Customer from Lead {0}.,Lütfen {0} Potansiyelinden Müşteri oluşturun., Mandatory Missing,Zorunlu Eksik, -Please set Payroll based on in Payroll settings,Lütfen Bordro ayarlarına göre Bordro ayarı, -Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3},Ek Maaş: {0} Maaş Bileşeni için zaten mevcut: {1} {2} dönem ve {3}, +Please set Payroll based on in Payroll settings,Lütfen Bordro ayarlarına göre Bordro ayarlayın, +Additional Salary: {0} already exist for Salary Component: {1} for period {2} and {3},Ek Maaş: {0} Maaş Bileşeni için zaten mevcut: {1} {2} dönemi ve {3}, From Date can not be greater than To Date.,"Başlangıç Tarihi, Bitiş Tarihinden büyük olamaz.", -Payroll date can not be less than employee's joining date.,"Bordro tarihi, çalışanların işe giriş işlemleri az olamaz.", -From date can not be less than employee's joining date.,İşçinin işe giriş yükünün önceki tarihi olamaz., -To date can not be greater than employee's relieving date.,Bugüne kadar çalışanların rahatlaması fazla olamaz., -Payroll date can not be greater than employee's relieving date.,"Bordro tarihi, çalışanların cayma yolları büyük olamaz.", +Payroll date can not be less than employee's joining date.,"Bordro tarihi, çalışanın işe giriş tarihinden az olamaz.", +From date can not be less than employee's joining date.,İşçinin işe giriş tarihinden önceki tarih olamaz., +To date can not be greater than employee's relieving date.,Bugüne kadar çalışanın rahatlama tarihinden fazla olamaz., +Payroll date can not be greater than employee's relieving date.,"Bordro tarihi, çalışanın cayma tarihinden büyük olamaz.", Row #{0}: Please enter the result value for {1},Satır # {0}: Lütfen {1} için sonuç değerini girin, Mandatory Results,Zorunlu Sonuçlar, -Sales Invoice or Patient Encounter is required to create Lab Tests,Laboratuvar Testleri oluşturmak için Satış Faturası veya Hasta Karşılaması gereklidir, +Sales Invoice or Patient Encounter is required to create Lab Tests,Laboratuvar Testleri oluşturmak için Satış Faturası veya Hasta Karşılaşması gereklidir, Insufficient Data,Yetersiz veri, -Lab Test(s) {0} created successfully,{0} Laboratuar Testleri başarıyla kuruldu, +Lab Test(s) {0} created successfully,{0} Laboratuar Testleri başarıyla oluşturuldu, Test :,Ölçek :, -Sample Collection {0} has been created,Örnek Koleksiyon {0} sahibi, +Sample Collection {0} has been created,Örnek Koleksiyon {0} oluşturuldu, Normal Range: ,Normal alan:, Row #{0}: Check Out datetime cannot be less than Check In datetime,"Satır # {0}: Teslim Alma tarih saati, Teslim Etme tarih saatinden az olamaz", "Missing required details, did not create Inpatient Record","Gerekli ayrıntılar eksik, Yatan Hasta Kaydı oluşturmadı", -Unbilled Invoices,Faturasız Faturalar, -Standard Selling Rate should be greater than zero.,Standart Satış Oranlarından büyük olmalıdır., -Conversion Factor is mandatory,Dönüştürme Faktörü tüketimi, -Row #{0}: Conversion Factor is mandatory,Satır # {0}: Dönüşüm Faktörü Maliyetleri, +Unbilled Invoices,Faturalanmamış Faturalar, +Standard Selling Rate should be greater than zero.,Standart Satış Oranı sıfırdan büyük olmalıdır., +Conversion Factor is mandatory,Dönüştürme Faktörü zorunludur, +Row #{0}: Conversion Factor is mandatory,Satır # {0}: Dönüşüm Faktörü zorunludur, Sample Quantity cannot be negative or 0,Örnek Miktarı negatif veya 0 olamaz, Invalid Quantity,Geçersiz Miktar, "Please set defaults for Customer Group, Territory and Selling Price List in Selling Settings","Lütfen Satış Ayarlarında Müşteri Grubu, Bölge ve Satış Fiyatı Listesi için varsayılanları ayarlayın", {0} on {1},{1} tarihinde {0}, -{0} with {1},"{0}, {1} dosyası", +{0} with {1},"{0}, {1} ile", Appointment Confirmation Message Not Sent,Randevu Onay Mesajı Gönderilmedi, -"SMS not sent, please check SMS Settings","SMS gönderirdi, lütfen SMS Ayarlarını kontrol edin", +"SMS not sent, please check SMS Settings","SMS gönderilmedi, lütfen SMS Ayarlarını kontrol edin", Healthcare Service Unit Type cannot have both {0} and {1},Sağlık Hizmeti Birimi Türünde hem {0} hem de {1} olamaz, Healthcare Service Unit Type must allow atleast one among {0} and {1},"Sağlık Hizmeti Birimi Türü, {0} ve {1} arasında en az birine izin vermelidir", -Set Response Time and Resolution Time for Priority {0} in row {1}.,{1} bilgisinde {0} Öncelik için Yanıt Süresi ve Çözüm Süresini ölçer., -Response Time for {0} priority in row {1} can't be greater than Resolution Time.,"{1} bilgisindeki {0} öncekiliği için Yanıt Süresi, Çözüm Süresinden fazla olamaz.", +Set Response Time and Resolution Time for Priority {0} in row {1}.,{1} satırında {0} Öncelik için Yanıt Süresi ve Çözüm Süresini ayarlayın., +Response Time for {0} priority in row {1} can't be greater than Resolution Time.,"{1} satırındaki {0} önceliği için Yanıt Süresi, Çözüm Süresinden fazla olamaz.", {0} is not enabled in {1},"{0}, {1} içinde etkinleştirilmedi", Group by Material Request,Malzeme Talebine Göre Gruplama, Email Sent to Supplier {0},Tedarikçiye Gönderilen E-posta {0}, "The Access to Request for Quotation From Portal is Disabled. To Allow Access, Enable it in Portal Settings.",Portaldan Teklif İsteğine Erişim Devre Dışı Bırakıldı. Erişime İzin Vermek için Portal Ayarlarında etkinleştirin., -Supplier Quotation {0} Created,tedarikçi Teklifi {0} Oluşturuldu, +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 ifadesi, Örnek: bölge! = 'Tüm Bölgeler'", +"Simple Python Expression, Example: territory != 'All Territories'","Basit Python İfadesi, Örnek: bölge! = 'Tüm Bölgeler'", Sales Contributions and Incentives,Satış Katkıları ve Teşvikler, -Sourced by Supplier,tedarikçi Kaynaklı, -Total weightage assigned should be 100%.
It is {0},Atanan toplam ağırlık %100 olmalıdır.
{0}, +Sourced by Supplier,Tedarikçi Kaynaklı, +Total weightage assigned should be 100%.
It is {0},Atanan toplam ağırlık% 100 olmalıdır.
{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", -Invalid condition expression,Geçersiz cümle ifadesi, +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 Cari Türünü Seçin, -Provide the invoice portion in percent,Fatura kısmı yüzde olarak yönlendirme, -Give number of days according to prior selection,Önceki seçime göre gün sayısını verin, +Please Select Both Company and Party Type First,Lütfen Önce Şirket ve Parti Türünü Seçin, +Provide the invoice portion in percent,Fatura kısmını yüzde olarak sağlayın, +Give number of days according to prior selection,Önceki seçime göre gün sayısı verin, Email Details,E-posta Ayrıntıları, -"Select a greeting for the receiver. E.g. Mr., Ms., etc.","Alıcı için bir selamlama hitabı seçin. Örneğin Sayın vb.", -Preview Email,E-posta Önizlemesi, -Please select a Supplier,Lütfen bir Tedarikçi seçiniz, +"Select a greeting for the receiver. E.g. Mr., Ms., etc.","Alıcı için bir karşılama mesajı seçin. Örneğin Bay, Bayan, vb.", +Preview Email,E-postayı Önizle, +Please select a Supplier,Lütfen bir Tedarikçi seçin, Supplier Lead Time (days),Tedarikçi Teslimat Süresi (gün), "Home, Work, etc.","Ev, İş vb.", -Exit Interview Held On,Çıkış Mülakat Bekleme Tarihi, -Condition and formula,Koşul ve Formüller, -Sets 'Target Warehouse' in each row of the Items table.,Kalemler tablosunun her tablosunda 'Hedef Depo' ayarlar., -Sets 'Source Warehouse' in each row of the Items table.,Kalemler tablosunun her tablosunda 'Kaynak Depo' ayarlar., +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., 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 yapılamaz", -"Can not filter based on Customer, if grouped by Customer","Müşteriye göre gruplandırılmışsa, müşteriyi görerek yapılamaz", -"Can not filter based on Cashier, if grouped by Cashier",Kasiyere göre gruplandırılmışsa Kasiyere göre filtre olamaz, -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 yapılamaz, +"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, +"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 Birimi), -Group by Supplier,Tedarikçiye göre Grupla, -Group by Item,Öğeye göre Grupla, -Remember to set {field_label}. It is required by {regulation}.,{Field_label} ayarlamayı unutmayın. {düzenleme} tarafından dahil edilmiştir., -Enrollment Date cannot be before the Start Date of the Academic Year {0},"Kayıt Tarihi, Akademik Başlangıç Tarihinden önce olamaz {0}", +Price per Unit (Stock UOM),Birim Fiyat (Stok UOM), +Group by Supplier,Tedarikçiye Göre Gruplama, +Group by Item,Öğeye Göre Gruplama, +Remember to set {field_label}. It is required by {regulation}.,{Field_label} ayarlamayı unutmayın. {Düzenleme} tarafından gereklidir., +Enrollment Date cannot be before the Start Date of the Academic Year {0},"Kayıt Tarihi, Akademik Yılın Başlangıç Tarihinden önce olamaz {0}", Enrollment Date cannot be after the End Date of the Academic Term {0},Kayıt Tarihi Akademik Dönemin Bitiş Tarihinden sonra olamaz {0}, Enrollment Date cannot be before the Start Date of the Academic Term {0},"Kayıt Tarihi, Akademik Dönemin Başlangıç Tarihinden önce olamaz {0}", -Future Posting Not Allowed,Hayatına Göndermeye İzin Verilmiyor, -"To enable Capital Work in Progress Accounting, ","Yarı Mamul Muhasebesini etkinleştirmek için,", -you must select Capital Work in Progress Account in accounts table,hesaplarda Sermaye Yarı Mamul Hesabını seçmelisiniz, -You can also set default CWIP account in Company {},"Ayrıca, Şirket içinde genel CWIP hesabı da ayarlayabilirsiniz {}", -The Request for Quotation can be accessed by clicking on the following button,Teklif Talebine aşağıdaki butona tıklanarak erişim sağlanır., +Future Posting Not Allowed,Gelecekte Göndermeye İzin Verilmiyor, +"To enable Capital Work in Progress Accounting, ","Devam Eden Sermaye Çalışması Muhasebesini etkinleştirmek için,", +you must select Capital Work in Progress Account in accounts table,hesaplar tablosunda Devam Eden Sermaye İşlemi Hesabını seçmelisiniz, +You can also set default CWIP account in Company {},"Ayrıca, Şirket içinde varsayılan CWIP hesabı da ayarlayabilirsiniz {}", +The Request for Quotation can be accessed by clicking on the following button,Teklif Talebine aşağıdaki butona tıklanarak ulaşılabilir., Regards,Saygılarımızla, Please click on the following button to set your new password,Yeni şifrenizi belirlemek için lütfen aşağıdaki düğmeyi tıklayın, Update Password,Şifreyi güncelle, -Row #{}: Selling rate for item {} is lower than its {}. Selling {} should be atleast {},"Satır # {}: {} öğenin satış oranı, {} değerinden düşüktür. {} Satışı en az {} olmalıdır", +Row #{}: Selling rate for item {} is lower than its {}. Selling {} should be atleast {},"Satır # {}: {} öğesinin satış oranı, {} değerinden düşük. {} Satışı en az {} olmalıdır", You can alternatively disable selling price validation in {} to bypass this validation.,Bu doğrulamayı atlamak için alternatif olarak {} içinde satış fiyatı doğrulamasını devre dışı bırakabilirsiniz., Invalid Selling Price,Geçersiz Satış Fiyatı, 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 aktarma, +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, -"Row {0}: For Supplier {1}, Email Address is Required to send an email","Satır {0}: Tedarikçi {1} için, e-posta aramak için E-posta Adresi Gereklidir", -"If enabled, the system will post accounting entries for inventory automatically","Etkinleştiriliyorse, sistem envanteri için muhasebe girişlerini otomatik olarak yetkilendiriyor", +"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 giremez oluşturamaz veya değiştiremez, +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 Kategori Vergisini 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ş verilen 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", -This role is allowed to submit transactions that exceed credit limits,"Bu rolün, kredi limitlerini aşan işlemlerin gönderilmesine 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" Kullanırken, bir aydaki gün kullanımlarında her ay için ertelenmiş gelir veya gider olarak sabit bir tutması gerekir. Ertelenmiş gelir veya giderler tüm bir ay rezerv içine olmayacakse, yaşayacak 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 sınırlaması için doğrudan GL girişleri oluşturulacaktır.", +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", +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 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 İrsaliye oluşturmak için Satınalma Siparişi gerekiyor mu?, -Is Purchase Receipt Required for Purchase Invoice Creation?,Satınalma Faturası oluşturmak için Satınalma İrsaliyesi gerekli mi?, -Maintain Same Rate Throughout the Purchase Cycle,Satınalma Döngüsü Boyunca Aynı Oranı Koruyun, -Allow Item To Be Added Multiple Times in a Transaction,Bir İşlemde Öğenin Birden Fazla Kez Eklenmesi İzin Ver, +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önder, -Select a Supplier,Bir tedarikçi Seçin, -Cannot mark attendance for future dates.,Gelecek tarihler için işaretlenemez., +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?
Present: {0}
Absent: {1},Katılımı güncellemek istiyor musunuz?
Şu an: {0}
Yok: {1}, Mpesa Settings,Mpesa Ayarları, Initiator Name,Başlatıcı Adı, Till Number,Numaraya Kadar, -Sandbox,Sandbox, - Online PassKey, Online PassKey, +Sandbox,Kum havuzu, + Online PassKey,Online PassKey, Security Credential,Güvenlik Kimlik Bilgileri, Get Account Balance,Hesap Bakiyesini Alın, -Please set the initiator name and the security credential,Lütfen başlatıcı adı ve güvenlik kimlik bilgileri güvenlik ayarı, +Please set the initiator name and the security credential,Lütfen başlatıcı adını ve güvenlik kimlik bilgilerini ayarlayın, Inpatient Medication Entry,Yatan Hasta İlaç Girişi, HLC-IME-.YYYY.-,HLC-IME-.YYYY.-, Item Code (Drug),Ürün Kodu (İlaç), @@ -9622,102 +9622,102 @@ Adding Order Entries,Sipariş Girişleri Ekleme, Inpatient Medication Order Entry,Yatan Hasta İlaç Tedavisi Sipariş Girişi, Is Order Completed,Sipariş Tamamlandı mı, Employee Records to Be Created By,Oluşturulacak Çalışan Kayıtları, -Employee records are created using the selected field,Çalışan kayıtları çalıştıran alan çalıştıran, -Don't send employee birthday reminders,akrabaların doğum günü hatırlatıcıları göndermeyin, +Employee records are created using the selected field,Çalışan kayıtları seçilen alan kullanılarak oluşturulur, +Don't send employee birthday reminders,Çalışanlara doğum günü hatırlatıcıları göndermeyin, Restrict Backdated Leave Applications,Geriye Dönük İzin Uygulamalarını Kısıtla, -Sequence ID,Sıra No, -Sequence Id,Sıra no, -Allow multiple material consumptions against a Work Order,Bir İş Emrine karşı birden fazla malzeme kullanımına izin verin, -Plan time logs outside Workstation working hours,Zaman günlüklerini İş İstasyonu çalışma saatleri dışında planlayın, +Sequence ID,Sıra kimliği, +Sequence Id,Sıra Kimliği, +Allow multiple material consumptions against a Work Order,Bir İş Emrine karşı birden fazla malzeme tüketimine izin verin, +Plan time logs outside Workstation working hours,İş İstasyonu çalışma saatleri dışında zaman günlüklerini planlayın, Plan operations X days in advance,İşlemleri X gün önceden planlayın, 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",İlk madde ve malzemelerin en son Değerleme Oranı / Fiyat Listesi Oranı / Son Satınalma Oranına göre ürün reçetesi hesabı 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,Ögeleri Seç, +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, -Is Sales Order Required for Sales Invoice & Delivery Note Creation?,Satış Faturası ve İrsaliye Oluşturulması için Satış Siparişi Gerekiyor mu?, -Is Delivery Note Required for Sales Invoice Creation?,Satış Faturası Oluşturmak için İrsaliye Gerekli mi?, -How often should Project and Company be updated based on Sales Transactions?,Satış İşlemlerine göre Proje ve Şirket hangi sıklıkta güncellenmelidir?, -Allow User to Edit Price List Rate in Transactions,Kullanıcının İşlemlerinde Fiyat Listesi Oranını Düzenlemesine İzin Ver, -Allow Item to Be Added Multiple Times in a Transaction,Bir İşlemde Öğenin Birden Fazla Kez Eklenmesi İ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 Ver, -Validate Selling Price for Item Against Purchase Rate or Valuation Rate,Alış Fiyatı veya Değerleme Oranına Karşı Ürün için Satış Fiyatını Doğrula, +Auto close Opportunity after the no. of days mentioned above,No'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ı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ı Ekle, -Automatically Set Serial Nos Based on FIFO,FIFO'ya Göre Seri Numaralarını Otomatik Olarak Ayarlama, -Set Qty in Transactions Based on Serial No Input,Seri No Girişine Dayılı İşlemlerde Miktarı Ayarla, +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 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ı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,İrsaliyeden Satınalma Faturasına Malzeme Transferine İzin Ver, +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ş birimleri {0}, Banka İşleminin ayrılmamış geçişlerden daha büyük", -Payment Received,Ödeme Alındı, +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ı, Attendance cannot be marked outside of Academic Year {0},Katılım Akademik Yıl dışında işaretlenemez {0}, -Student is already enrolled via Course Enrollment {0},"Öğrenci, Kurs Kaydır aracılığıyla zaten kayıtlı {0}", +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 programını kullanmak için programları ekleyin., -The following employees are currently still reporting to {0}:,Aşağıdaki çalışanlar şu anda yaşıyor {0} 'a rapor veriyor:, -Please make sure the employees above report to another Active employee.,Lütfen yukarıdaki işyerinde başka bir çalışana rapor ettiğinden emin olun., +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:, +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öntemini seçin. Mpesa, '{0}' para birimindeki işlemler desteklenmiyor", +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", 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 cennetinde sorun algılandı, daha fazla ayrıntı için hata günlüklerini kontrol edin", -Mpesa Express Error,Mpesa Ekspres 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", +Mpesa Express Error,Mpesa Express Hatası, Account Balance Processing Error,Hesap Bakiyesi İşleme Hatası, -Please check your configuration and try again,Lütfen geçitlerinizi kontrol edin ve tekrar deneyin., +Please check your configuration and try again,Lütfen yapılandırmanızı kontrol edin ve tekrar deneyin, Mpesa Account Balance Processing Error,Mpesa Hesap Bakiyesi İşleme Hatası, Balance Details,Bakiye Ayrıntıları, Current Balance,Mevcut Bakiye, Available Balance,Kalan bakiye, Reserved Balance,Ayrılmış Bakiye, Uncleared Balance,Temizlenmemiş Bakiye, -Payment related to {0} is not completed,{0} ile ilgili ödeme tamamlamadı, -Row #{}: Item Code: {} is not available under warehouse {}.,"Satır # {}: Öge Kodu: {}, {} deposunda kolaylıklar.", -Row #{}: Stock quantity not enough for Item Code: {} under warehouse {}. Available quantity {}.,Satır # {}: Stok miktarı Ürün Kodu için yeterli değil: {} deposu altında {}. Mevcut Miktarı {}., -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 kullanmak için onu kaldırmak., -Row #{}: No serial number selected against item: {}. Please select one or remove it to complete transaction.,Satır # {}: {} öğeye karşı seri numarası olması gerekiyordu. İşlemi muhafaza etmek için lütfen birini seçin veya yükleyin., -Row #{}: No batch selected against item: {}. Please select a batch or remove it to complete transaction.,Satır # {}: Öğeye karşı parti olmasıdi: {}. İşlemi bölmek için lütfen bir grup seçin veya yükleyin., -Payment amount cannot be less than or equal to 0,Ödeme parçaları 0'dan küçük veya 0'a eşit olamaz, -Please enter the phone number first,Lütfen önce telefon numarasını giriniz, +Payment related to {0} is not completed,{0} ile ilgili ödeme tamamlanmadı, +Row #{}: Item Code: {} is not available under warehouse {}.,"Satır # {}: Öğe Kodu: {}, {} deposunda kullanılamaz.", +Row #{}: Stock quantity not enough for Item Code: {} under warehouse {}. Available quantity {}.,Satır # {}: Stok miktarı Ürün Kodu için yeterli değil: {} depo altında {}. Mevcut Miktarı {}., +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, +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 kuruluş, -You had {} errors while creating opening invoices. Check {} for more details,Açılış faturaları oluştururken {} hata yaptı. Daha fazla detay için {} adresi kontrol edin, +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, +You had {} errors while creating opening invoices. Check {} for more details,Açılış faturaları oluştururken {} hata yaptınız. Daha fazla ayrıntı için {} adresini kontrol edin, Error Occured,Hata oluştu, Opening Invoice Creation In Progress,Fatura Oluşturma İşleminin Açılması, Creating {} out of {} {},{} / {} {} Oluşturuluyor, -(Serial No: {0}) cannot be consumed as it's reserverd to fullfill Sales Order {1}.,"(Seri No: {0}), Satış Siparişini muhafaza etmek üzere yeniden sunulduğu için götürmek {1}.", -Item {0} {1},öğe {0} {1}, -Last Stock Transaction for item {0} under warehouse {1} was on {2}.,{1} depolama verileri {0} öğesi için son Stok İşlemi {2} tarihinde yapıldı., -Stock Transactions for Item {0} under warehouse {1} cannot be posted before this time.,{1}depo verileri {0} Öğesi için Stok İşlemleri bu süreden önce deftere aktarılamaz., -Posting future stock transactions are not allowed due to Immutable Ledger,Immutable Ledger nedeniyle kaynakları hisse senedi işlemlerinin kaydedilmesine izin verilmiyor, -A BOM with name {0} already exists for item {1}.,{1} öğe için {0} adlı bir malzeme listesi zaten var., -{0}{1} Did you rename the item? Please contact Administrator / Tech support,{0} {1} Öğeyi yeniden adlandırdınız mı? Lütfen Yönetici / Teknik destek ile iletişim geçin, -At row #{0}: the sequence id {1} cannot be less than previous row sequence id {2},"{0}. Satırda: {1} sıralı kimlik, önceki satır dizisi kimliğinden {2} küçük olamaz", -The {0} ({1}) must be equal to {2} ({3}),"{0} ({1}), {2} ({3}) eşit olmalıdır", -"{0}, complete the operation {1} before the operation {2}.","{0}, işlem {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 kargo 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 bulunmuyor. Seri No ile teslimat garanti edilemez, -No pending medication orders found for selected criteria,Seçilen hükümler için bekleyen ilaç siparişi bulunamadı, -From Date cannot be after the current date.,"Başlangıç Tarihi, geçerli sınırlama sonra olamaz.", -To Date cannot be after the current date.,"Bitiş Tarihi, geçerli açıklaması sonra olamaz.", -From Time cannot be after the current time.,From Time zaman sınırı sonra olamaz., -To Time cannot be after the current time.,To Time zaman sınırı sonra olamaz., -Stock Entry {0} created and ,{0} Stok Hareketi kaydı ve, +(Serial No: {0}) cannot be consumed as it's reserverd to fullfill Sales Order {1}.,"(Seri No: {0}), Satış Siparişini tamamlamak üzere yeniden sunulduğu için kullanılamaz {1}.", +Item {0} {1},Öğe {0} {1}, +Last Stock Transaction for item {0} under warehouse {1} was on {2}.,{1} deposu altındaki {0} öğesi için son Stok İşlemi {2} tarihinde yapıldı., +Stock Transactions for Item {0} under warehouse {1} cannot be posted before this time.,{1} deposu altındaki {0} Öğesi için Stok İşlemleri bu süreden önce deftere nakledilemez., +Posting future stock transactions are not allowed due to Immutable Ledger,Immutable Ledger nedeniyle gelecekteki hisse senedi işlemlerinin kaydedilmesine izin verilmiyor, +A BOM with name {0} already exists for item {1}.,{1} öğesi için {0} adlı bir malzeme listesi zaten var., +{0}{1} Did you rename the item? Please contact Administrator / Tech support,{0} {1} Öğeyi yeniden adlandırdınız mı? Lütfen Yönetici / Teknik destek ile iletişime geçin, +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, +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 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}haftasında {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 Yapılandırmalarında Negatif Stoka İzin Sürümünü etkinleştirin veya Stok Hareketi oluşturun., +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 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, @@ -9731,402 +9731,110 @@ Therapy Plan Template Detail,Tedavi Planı Şablon Detayı, Non Conformance,Uygunsuzluk, Process Owner,İşlem Sahibi, Corrective Action,Düzeltici eylem, -Preventive Action,Önleyici eylemleyici, -Problem,sorun, -Responsible,sorumluluk sahibi, -Completion By,tamamlayan, +Preventive Action,Önleyici eylem, +Problem,Sorun, +Responsible,Sorumluluk sahibi, +Completion By,Tamamlayan, Process Owner Full Name,İşlem Sahibinin Tam Adı, Right Index,Sağ Dizin, Left Index,Sol Dizin, -Sub Procedure,Alt çember, +Sub Procedure,Alt Prosedür, Passed,Geçti, Print Receipt,Makbuzu yazdır, -Edit Receipt,Makbuzu düzenleyici, +Edit Receipt,Makbuzu Düzenle, Focus on search input,Arama girdisine odaklanın, -Focus on Item Group filter,Öğe Grubu odaklarının odak noktası, +Focus on Item Group filter,Öğe Grubu filtresine odaklanın, Checkout Order / Submit Order / New Order,Ödeme Siparişi / Sipariş Gönder / Yeni Sipariş, Add Order Discount,Sipariş İndirimi Ekle, -Item Code: {0} is not available under warehouse {1}.,"Ürün Kodu: {0}, {1} deposunda bulunur.", -Serial numbers unavailable for Item {0} under warehouse {1}. Please try changing warehouse.,{1} depolama dosyası Öğesi {0} için seri numaraları kullanılamıyor. Lütfen depoyu değiştirmeyi deneyin., +Item Code: {0} is not available under warehouse {1}.,"Ürün Kodu: {0}, {1} deposunda kullanılamaz.", +Serial numbers unavailable for Item {0} under warehouse {1}. Please try changing warehouse.,{1} deposu altındaki Öğe {0} için seri numaraları kullanılamıyor. Lütfen depoyu değiştirmeyi deneyin., Fetched only {0} available serial numbers.,Yalnızca {0} kullanılabilir seri numarası getirildi., Switch Between Payment Modes,Ödeme Modları Arasında Geçiş Yapın, -Enter {0} amount.,{0} hanelerini girin., -You don't have enough points to redeem.,kullanıcık için yeterli puanınız yok., +Enter {0} amount.,{0} tutarı girin., +You don't have enough points to redeem.,Kullanmak için yeterli puanınız yok., You can redeem upto {0}.,En çok {0} kullanabilirsiniz., -Enter amount to be redeemed.,Kullanılacak bölümleri giriniz., +Enter amount to be redeemed.,Kullanılacak tutarı girin., You cannot redeem more than {0}.,{0} adetten fazlasını kullanamazsınız., Open Form View,Form Görünümünü Aç, -POS invoice {0} created succesfully,POS faturası {0} başarıyla kuruldu, -Stock quantity not enough for Item Code: {0} under warehouse {1}. Available quantity {2}.,Stok miktarı Ürün Kodu için yeterli değil: {1} altında {0} deposu. Mevcut miktar {2}., +POS invoice {0} created succesfully,POS faturası {0} başarıyla oluşturuldu, +Stock quantity not enough for Item Code: {0} under warehouse {1}. Available quantity {2}.,Stok miktarı Ürün Kodu için yeterli değil: {0} depo altında {1}. Mevcut miktar {2}., Serial No: {0} has already been transacted into another POS Invoice.,Seri No: {0} zaten başka bir POS Faturasına dönüştürüldü., Balance Serial No,Denge Seri No, -Warehouse: {0} does not belong to {1},"Depo: {0}, {1} yerleşimi ait değil", -Please select batches for batched item {0},Lütfen {0} toplu öğe için gruplar seçin, +Warehouse: {0} does not belong to {1},"Depo: {0}, {1} şirketine ait değil", +Please select batches for batched item {0},Lütfen {0} toplu öğe için grupları seçin, Please select quantity on row {0},Lütfen {0}. Satırdaki miktarı seçin, Please enter serial numbers for serialized item {0},Lütfen serileştirilmiş öğe {0} için seri numaralarını girin, -Batch {0} already selected.,{0} grubu zaten seçilmiş., +Batch {0} already selected.,{0} grubu zaten seçildi., Please select a warehouse to get available quantities,Lütfen mevcut miktarları almak için bir depo seçin, -"For transfer from source, selected quantity cannot be greater than available quantity","Kaynaktan transfer için, seçilen miktar mevcut miktar büyük olamaz", +"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} yaptırımlar. {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ın almayı oluşturmak için varlıkları iptal etmeniz gerekir., +{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ı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 etmeyen {}, +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 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 dağıtma veya farklı bir hesaptan çalıştırma., -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 hesabı olduğundan emin olun. Hesap açma Borçlu olarak taşıma veya farklı bir hesap seçin., -Row {}: Expense Head changed to {} ,Satır {}: Gider Başlığı {} olarak değiştirilir, +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 geniş envanter hesabı 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 giderleri kaldırdı {}, -as no Purchase Receipt is created against Item {}. ,Öğe {} Satın alma deposu Alma Fişi oluşturmadığı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 yerlerde 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 beklemeden 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 beklemek için lütfen {}, -Mandatory Purchase Receipt,Zorunlu Satınalma Fişi, -POS Profile {} does not belongs to company {},"POS Profili {}, {} işletmesi ait değil", +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ı {}., Original invoice should be consolidated before or along with the return invoice.,"Orijinal fatura, iade faturasıyla birlikte veya öncesinde konsolide edilmelidir.", -You can add original invoice {} manually to proceed.,Devam etmek için orijinal faturayı {} manuel olarak kiralamak., +You can add original invoice {} manually to proceed.,Devam etmek için orijinal faturayı {} manuel olarak ekleyebilirsiniz., Please ensure {} account is a Balance Sheet account. ,Lütfen {} hesabının bir Bilanço hesabı olduğundan emin olun., -You can change the parent account to a Balance Sheet account or select a different account.,Ana hesabı bir Bilanço hesabı olarak dağıtma veya farklı bir hesaptan çalıştırma., +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 oluşturma Alacak olarak iletmek 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ı yöneticinin {} iptal etmesi mümkün değil. Önce {} Hayır {} 'ı iptal edin, +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 Bağlılık Puanları kullanıldığından {} iptal edilemez. Önce {} Hayır {} 'ı iptal edin, already exists,zaten var, -POS Closing Entry {} against {} between selected period,Seçilen dönemler arasında {} karşısında POS Kapanış Girişi {}, +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ı {}, POS Profile doesn't matches {},POS Profili {} ile eşleşmiyor, POS Invoice is not {},POS Faturası {} değil, POS Invoice isn't created by user {},POS Faturası kullanıcı tarafından oluşturulmaz {}, -Row #{}: {},Kürek çekme #{}: {}, +Row #{}: {},Kürek çekmek #{}: {}, Invalid POS Invoices,Geçersiz POS Faturaları, -Please add the account to root level Company - {},Lütfen hesabın kök bölgesindeki Ş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ştururken, {1} ebeveyn hesabı bulunamadı. Lütfen ilgili COA'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ştururken, {1} ana hesap bir genel muhasebe hesabı olarak bulundu.", +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", +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., -Invalid Parent Account,Geçersiz Hesabı, -"Renaming it is only allowed via parent company {0}, to avoid mismatch.",Uyuşmazlığı önlemek için yeniden adlandırılmasına yalnızca ana şirket {0} yoluyla izin verilir., +Invalid Parent Account,Geçersiz Ebeveyn Hesabı, +"Renaming it is only allowed via parent company {0}, to avoid mismatch.",Uyuşmazlığı önlemek için yeniden adlandırılmasına yalnızca ana şirket {0} aracılığıyla izin verilir., "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} yaptırmak, şema {3} öğeye uygulanacaktır.", -"As the field {0} is enabled, the field {1} is mandatory.","{0} alanı etkinleştirildiğinde, {1} alanı sunucuları.", -"As the field {0} is enabled, the value of the field {1} should be more than 1.","{0} alanı etkinleştirildiğinde, {1} bağlantı değeri 1'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 muhafaza etmek için yükümlülüklerinden {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} parça için rezervasyona sahip, yalnızca {0} oda {1} ayrılmış olarak teslim alabilir.", +"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.", +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}: Taşeronluk Öğe {1} hammaddesi için zorunludur", +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.", 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 sınırlıyor", +Therapy Session overlaps with {0},"Terapi Oturumu, {0} ile çakışıyor", Therapy Sessions Overlapping,Çakışan Terapi Seansları, Therapy Plans,Tedavi Planları, "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şın Malzeme Taleplerinden Ürünleri Getir, -Enable European Access,Avrupa Erişimini Etkinleştirin, -Creating Purchase Order ...,Satınalma Siparişi Oluşturuyor ..., -"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 seçenekler 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 verecek.", -Row #{}: You must select {} serial numbers for item {}.,Satır # {}: {} öğe için {} seri numaralarını seçmelisiniz., -qty,Miktar, -Bulk Edit,Toplu Düzenle, -Qualified,Nitelikli, -Unqualified,Niteliksiz, -Qualified By,Yeterlilik Veren, -Qualified on,Yeterlilik Tarihi, -Qualification Status,Yeterlilik Durumu, -Is Template,Şablon mu, -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 Transactions Settings,Stok İşlem Ayarları, -Role Allowed to Over Deliver/Receive,Aşırı Teslim Etmeye/Almaya İzin Verilen Rol, -Reports & Masters,Raporlar ve Masterlar, -Let's Set Up the Assets Module.,Assets Modülünü Kuralım!, -"Assets, Depreciations, Repairs, and more.","Varlıklar, Amortismanlar, Onarımlar ve daha fazlası.", -Review Fixed Asset Accounts,Sabit Kıymet Hesaplarını İnceleyin, -Define Asset Category,Varlık Kategorisini Tanımla, -Create an Asset Item,Bir Varlık Öğesi Oluşturun, -Purchase an Asset,Bir Varlık Satın Alın, -Add an Existing Asset,Mevcut Bir Varlık Ekle, -Settings & Configurations,Ayarlar ve Yapılandırmalar, -Let's Set Up the Selling Module.,Haydi Satış Modülünü Kuralım!, -"Products, Sales, Analysis, and more.","Ürünler, Satış, Analiz ve daha fazlası.", -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ı.", -Track Material Request,Malzeme Talebini Takip et, -Create first Purchase Order,İlk Satınalma Siparişini oluşturun, -Opening & Closing,Açılış & Kapanış, -Connections,Bağlantılar, -Basic Info,Temel Bilgiler, -Desk Settings,Desk Ayarları, -Desk Theme,Desk Teması, -Roles & Permissions,Roller ve İzinler, -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 Ayarlayın, -Create a Product,Bir Ürün Oluşturun, -Create a Supplier,Bir Tedarikçi Oluşturun, -Let's Set Up Your Accounts and Taxes.,Haydi 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ı Gözden geçirin, -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üncelle, -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ı Gözden geçir, -Setup a Warehouse,Bir Depo Ayarla, -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, -Internal Supplier,Dahili Tedarikçi, -Supplier Primary Contact,Tedarikçi Birincil İlgili, -Supplier Primary Address,Tedarikçi Birincil Adresi, -Available Qty For Consumption,Tüketim İçin Kullanılabilir Miktar, -Qty to Be Consumed,Tüketilecek Miktar, -Apply Putaway Rule,Yerleştirme Kuralını Uygula, -Company Shipping Address,Şirket Sevkiyat Adresi, -Shipping Address Template,Sevkiyat Adresi Şablonu, -Company Billing Address,Şirket Fatura Adresi, -Subcontracting Settings,Taşeronluk Ayarları, -Naming Series and Price Defaults,Adlandırma Serisi ve Fiyat Varsayılanları, -Configure the action to stop the transaction or just warn if the same rate is not maintained.,İşlemi durdurmak için eylemi yapılandırın veya aynı oran korunmazsa sadece uyarı verin., -Bill for Rejected Quantity in Purchase Invoice,Alış Faturasında Reddedilen Miktar Faturası, -If checked, Rejected Quantity will be included while making Purchase Invoice from Purchase Receipt.,İşaretlenirse Satınalma İrsaliyesinden Satınalma Faturası yapılırken Reddedilen Miktar dahil edilecektir., -Disable Last Purchase Rate,Son Satınalma Oranını Devre Dışı Bırak, -Role Allowed to Override Stop Action,Durdurma Eylemini Geçersiz kılma izni olan Rol, -"Review Stock Settings\n\nIn ERPNext, the Stock module\u2019s features are configurable as per your business needs. Stock Settings is the place where you can set your preferences for:\n- Default values for Item and Pricing\n- Default valuation method for inventory valuation\n- Set preference for serialization and batching of item\n- Set tolerance for over-receipt and delivery of items","# Stok Ayarlarını İnceleyin\n\nERPNext'te, Stok modülünün\u2019 özellikleri iş ihtiyaçlarınıza göre yapılandırılabilir. Stok Ayarları, şunlar için tercihlerinizi ayarlayabileceğiniz yerdir:\n- Öğe ve Fiyatlandırma için varsayılan değerler\n- Envanter değerlemesi için varsayılan değerleme yöntemi\n- Kalemlerin serileştirilmesi ve gruplandırılması için tercihi ayarlayın\n- Kalemlerin fazla girişi ve teslimatı için toleransı ayarlayın", -Auto close Opportunity Replied after the no. of days mentioned above,Yukarıda belirtilen gün sayısından sonra Yanıtlanan Fırsatı Otomatik Kapat, -Carry Forward Communication and Comments,İletişimi ve Yorumları Devret, -"All the Comments and Emails will be copied from one document to another newly created document(Lead -> Opportunity -> Quotation) throughout the CRM documents.","Tüm Yorumlar ve E-postalar, CRM belgeleri boyunca bir belgeden yeni oluşturulan başka bir belgeye (Yol -> Fırsat -> Teklif) kopyalanacaktır.", -Allow Continuous Material Consumption,Sürekli Malzeme Tüketimi Sağlayın, -Allow material consumptions without immediately manufacturing finished goods against a Work Order,Bir İş Emrine göre bitmiş ürünleri hemen üretmeden malzeme tüketimine izin verin, -Allow material consumptions without immediately manufacturing finished goods against a Work Order,Bir İş Emrine göre bitmiş ürünleri hemen üretmeden malzeme tüketimine izin verin, -Add Corrective Operation Cost in Finished Good Valuation,Mamul Değerlemede Düzeltici Operasyon Maliyetini Ekleyin, -Allow Excess Material Transfer,Fazla Malzeme Aktarımına İzin Ver, -Allow transferring raw materials even after the Required Quantity is fulfilled,Gerekli Miktar yerine getirildikten sonra bile hammadde transferine izin ver, -Make Serial No / Batch from Work Order,İş Emrinden Seri No / Parti Yap, -System will automatically create the serial numbers / batch for the Finished Good on submission of work order,İş emrinin verilmesi ile Mamul için seri numaralarını / partiyi sistem otomatik olarak oluşturacaktır., -"Custom Field, Custom Doctype, Naming Series, Role Permission, Workflow, Print Formats, Reports","Özel Alan, Özel Belge Tipi, Adlandırma Serisi, Rol İzni, İş Akışı, Baskı Formatları, Raporlar", -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, -Sales Partner Target Variance Based On Item Group,Ürün Grubuna göre Satış Ortağı Hedef Sapması, -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ı?, -Set Qty in Transactions Based on Serial No Input,Seri No Girişine Dayalı İşlemlerde Miktarı Ayarla, -Disable Serial No And Batch Selector,Seri No ve Lot Seçiciyi Devre Dışı Bırak, -Create Custom Fields,Özel Alanlar Oluşturun, -Custom Document Types,Özel Belge Türleri, -Setup Naming Series,Adlandırma Serisi Kurulumu, -Setup Approval Workflows,Onay İş Akışları Kurulumu, -Setup Limited Access for a User,Kullanıcı için Sınırlı Erişim Kurulumu, -Items to Order and Receive,Sipariş Edilecek ve Alınacak Ürünler, -Customize Print Formats,Baskı Biçimlerini Özelleştirin, -Generate Custom Reports,Özel Raporlar Oluşturun, -Partly Paid,Kısmen Ödenmiş, -Partly Paid and Discounted,Kısmen Ödenmiş ve İndirimli -Fixed Time,Sabit Süre, -Loan Write Off,Kredi İptali, -Returns,İadeler, -Leads,Adaylar, -Forecasting,Tahmin, -In Location,Konumda, -Disposed,Elden Çıkarıldı, -Additional Info,Ek Bilgi, -Loan Write Off,Kredi İptali, -Prospect,Potansiyel Müşteri, -Workstation Type,İş İstasyonu Türü, -Work Order Consumed Materials,İş Emri Sarf Malzemeleri, -Planned End Date,Planlanan Bitiş Tarihi, -Inventory Settings,Envanter Ayarları, -CRM Settings,CRM Ayarları, -Operations & Materials,Operasyonlar ve Malzemeler, -Scrap & Process Loss,Hurda & İşletme Zararı, -Primary Contact,Birincil İlgili Kişi, -Process Loss,İşletme Zararı, -% Process Loss,% İşletme Zararı, -Contact Mobile,İletişim Cep No, -Cost Center Allocation,Maliyet Merkezi Tahsisi, -Cost Configuration,Maliyet Yapılandırması, -Opportunity Owner,Fırsat Sahibi, -Opportunity Value,Fırsat Değeri, -Opportunity Summary by Sales Stage,Satış Aşamasına göre Fırsat Özeti, -From Opportunity,Bu Fırsattan, -Sales Pipeline Analytics,Satış Süreci Analitiği, -Over Transfer Allowance,Fazla Aktarım Ödeneği, -Quality Inspection Settings,Kalite Kontrol Ayarları, -Action If Quality Inspection Is Rejected,Kalite Muayenesi Reddedilirse Yapılacak İşlem, -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, -Operation time does not depend on quantity to produce,Operasyon süresi üretilecek miktara bağlı değildir, -Set Operating Cost Based On BOM Quantity,BOM Ürün reçetesi miktarına göre Operasyon Maliyetini Belirle, -Allow Lead Duplication based on Emails,E-postaya dayalı Aday Çoğaltmaya İzin ver, -Close Replied Opportunity After Days,Cevaplanan Fırsatı Kapat (gün sonra), -Is Cash or Non Trade Discount,Nakit veya Ticari olmayan İndirim, -Primary Address and Contact,Birincil Adres ve İletişim, -Auto Creation of Contact,Kişinin Otomatik Oluşturulması, -Control Historical Stock Transactions,Geçmiş Stok İşlemlerini Kontrol Et, -You have not entered a value. The field will be set to empty.,Bir değer girmediniz. Alan boş olarak ayarlanacaktır., -No stock transactions can be created or modified before this date.,Bu tarihten önce hisse senedi hareketleri oluşturulamaz veya değiştirilemez., -Role Allowed to Create/Edit Back-dated Transactions,Geriye Dönük İşlemleri Oluşturma / Düzenleme İzni Rolü, -"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.", -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., -"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.", -Loan Write Off will be automatically created on loan closure request if pending amount is below this limit,"Kredi kapatma talebinde, bekleyen tutarın bu limitin altında olması durumunda, Kredi Kapatma talebi otomatik olarak oluşturulur", -"Link that is the website home page. Standard Links (home, login, products, blog, about, contact)","Web sitesi ana sayfası olan bağlantı. Standart Bağlantılar (ana sayfa, giriş, ürünler, blog, hakkında, iletişim)", -Show Language Picker,Dil Seçiciyi Göster, -Login Page,Login / Giriş Sayfası, -App Logo,Uygulama Logosu, -Splash Image,Açılış Görüntüsü, -Account Deletion Settings,Hesap Silme Ayarları, -Auto Account Deletion within (Hours),(Saat) İçerisinde Otomatik Hesap Silme, -Show Account Deletion Link in My Account Page,Hesabım Sayfasında Hesap Silme Bağlantısını Göster, -Footer Details,Altbilgi Ayrıntıları, -Custom Footer,Özel Alt bilgi, -Qty As Per BOM,BOMa göre Mik, -Distribute Manually,Manuel olarak Dağıt, -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, -Production Plan Item Reference,Üretim Planı Öge Referansı, -Include Safety Stock in Required Qty Calculation,Emniyet Stokunu Gerekli Miktar Hesaplamasına Dahil Et, -Calculate Product Bundle Price based on Child Item,Ürün Paketi Fiyatını Alt Öğeye Göre Hesapla, -Customer Defaults,Müşteri Varsayılanları, -Item Price Settings,Ürün Fiyat Ayarları, -Standard Selling,Standart Satış, -Terms Template,Şartlar Şablonu, -Quotation Number,Teklif Numarası, -Min Qty (As Per Stock UOM),Min Mik (Stok birimine göre), -Max Qty (As Per Stock UOM),Max Mik (Stok birimine göre), -Action If Same Rate is Not Maintained,Aynı Oran Sağlanmazsa Yapılacak İşlem, -Calculate Product Bundle Price based on Child Items' Rates,Alt Öğelerin Fiyatlarına Göre Ürün Paketi Fiyatını Hesaplayın, -Transaction Settings,İşlem Ayarları, -Sales Update Frequency in Company and Project,Şirket ve Projede Satış Güncelleme Sıklığı, -Allow Item to be Added Multiple Times in a Transaction,Bir İşlemde Birden Fazla Öğe Eklenmesine İzin Verme, -Enable Discount Accounting for Selling,Satış için İskonto Muhasebesini Etkinleştirin, -"If enabled, additional ledger entries will be made for discounts in a separate Discount Account","Etkinleştirilirse, indirimler için ayrı bir İndirim Hesabında ek defter girişleri yapılır", -Setting the account as a Company Account is necessary for Bank Reconciliation,Hesabın Şirket Hesabı olarak ayarlanması Banka Mutabakatı için gereklidir, -Is Finished Item,Bitmiş Ürün mü, -Is Scrap Item,Hurda Ögesi mi, -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şı 0 adet borç dekontu düzenleyin, -To use Google Indexing, enable Google Settings.,Google Dizine Eklemeyi kullanmak için Google Ayarlarını etkinleştirin., -Show Net Values in Party Account,Cari Hesabındaki Net Değerleri Göster, -Begin typing for results.,Sonuçlar için yazmaya başlayın., -Invoice Portion (%),Fatura Porsiyonu (%), -Discount Settings,İndirim Ayarları, -Payment Terms Status for Sales Order,Satış Siparişi için Ödeme Koşulları Durumu, -Assembly Items,Montaj Öğeleri, -Materials & Operations,Malzemeler ve Operasyonlar, -Sub Assembly Items,Alt Montaj Öğeleri, -Sub Assembly Item Code,Alt Montaj Ürün Kodu, -Manufacturing Type,Üretim Tipi, -Total Operation Time,Toplam Operasyon Süresi, -Time in mins.,Süre (dk), -Plan to Request Qty,Talep Miktarını Planla, -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, -Item Reference,Öğe Referansı, -Bank Reconciliation Tool,Banka Uzlaştırma Aracı, -Sales Order Reference,Satış Siparişi Referansı, -Disbursement Account,Harcama Hesabı, -Repayment Account,Geri Ödeme Hesabı, -Auto Write Off Amount ,Otomatik Kapatma Tutarı, -Contact & Address,İletişim ve Adres, -Ref DocType,Ref Belge Türü, -FG Warehouse,Mamul Deposu, -Tax Detail,Vergi Detayı, -Other Info,Diğer Bilgiler, -Transit Entry,Transit Kaydı, -Show Remarks,Açıklamaları Göster, -Stage,Aşama, -Stock Planning,Stok Planlama, -Stock Closing,Stok Kapanışı, -Stock Validations,Stok Doğrulamaları, -Serial & Batch Item,Seri ve Parti Öğesi, -Picked Qty (in Stock UOM),Toplanan Mik (Stok Birimi), -Inter Transfer Reference,Inter Transfer Referansı, -Update Rate as per Last Purchase,Son Alışa göre Fiyatı Güncelle, -Create Job Card based on Batch Size,Parti Büyüklüğüne göre İş Kartı Oluştur, -Is Corrective Operation,Düzeltici İşlem mi, -Sub Operations,Alt Operasyonlar, -Sales Order Status,Satış Sipariş Durumu, -Order Status,Sipariş Durumu, -Terms & Conditions,Vade & Koşullar, -From Delivery Date,Teslimat Tarihi Baş. , -To Delivery Date,Teslimat Tarihi Bitişi, -Probability,Olasılık, -BOM Info,Ürün Ağacı / BOM Bilgisi, -Closing,Kapanış, -"Header, Robots","Başlık, Robotlar" -Redirects,Yönlendirmeler, -Elements,Elementler, -Operation Section,Operasyon Bölümü, -Scrap Item Code,Hurda Ürün Kodu, -Scrap Item Name,Hurda Ürün Adı, -FG Qty from Transferred Raw Materials,Transfer edilen Hammaddelerden Nihai Ürün Miktarı, -Start Timer,Zamanlayıcıyı Başlat, -Overview,Genel Bakış, -Supplier Invoice,Tedarikçi Faturası, -Supplier Contact,Tedarikçi İrtibat, -Returned Qty ,İade Edilen Mik , -Deal Owner,Anlaşma Sahibi, -Phone Ext.,Dahili Telefon, -Annual Revenue,Yıllık Gelir, -No of Employees,Çalışan Sayısı, -No. of Employees,Personel Sayısı, -Prospect Owner,Potansiyel Sahibi, -Territory Wise Sales,Bölge Bazlı Satışlar, -Amount Eligible for Commission,Komisyona Uygun Tutar, -Unit of Measure (UOM),Ölçü Birimleri, -Grant Commission,Komisyona İzin ver, -Minimum Net Rate,Minimum Net Oran, -Maximum Net Rate,Maximum Net Oran, -Allow Purchase,Satınalmaya izin ver, -Allow Sales,Satışa izin ver, -Fetch Timesheet,Zaman Çizelgesini Getir, -Dispatch Address Name,Sevk Adresi Adı, -Permission Manager,İzin Yöneticisi, -Warehouse Wise Stock Balance,Stok Bakiyesi Depo bazında, -Review Stock Settings,Stok Ayarlarını İnceleyin, -Configure Columns,Kolonları Ayarla, -Column Width,Kolon Genişliği, -Delayed Tasks Summary,Geciken Görevler Özeti, -Add / Remove Columns,Kolon Ekle / Kaldır, -Reset to default,Varsayılana Sıfırla, -Copy error to clipboard,Hatayı panoya kopyala, -Rate of Stock UOM,Stok Birimi Oranı, -Provisional Expense Account,Geçici Gider Hesabı, -Qty in Stock UOM,Stok Biriminde Miktar, -Advance Taxes and Charges,Peşin Ödenen Vergi ve Harçlar, -Taxes and Charges Template,Vergiler ve Harçlar Şablonu, -Default Provisional Account,Varsayılan Geçici Hesap, -Default In-Transit Warehouse,Varsayılan Transit Depo, -Unrealized Profit / Loss Account,Gerçekleşmemiş Kâr / Zarar Hesabı, -Received Qty in Stock UOM,Stok Biriminde Alınan Miktar, -Accepted Qty in Stock UOM,Stok Biriminde Kabul edilen Miktar, -FG based Operating Cost,Mamül bazlı Operasyon Maliyeti, -Update {0} records,{0} Kaydı Güncelle, -Document Linking,Belge Bağlantısı, -Applying Discount,İndirim Uygula, -Recurring Sales Order,Yinelenen Satış Siparişi, -Outgoing (SMTP) Settings,Giden (SMTP) Ayarları, -Incoming (POP/IMAP) Settings,Gelen (POP/IMAP) Ayarları, -Use different Email ID,Farklı E-posta kullan, -System Logs,Sistem Logları, -KSA VAT Setting,KSA KDV Ayarları, -KSA VAT Report,KSA KDV Raporu, -UAE VAT 201,Birleşik Arap Emirlikleri KDV 201, +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ı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., From 209adf32a5ebf6df70784a1d6567720d6c296343 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 21:11:22 +0530 Subject: [PATCH 291/355] fix: Use customer name instead of name(id) in PSOA (backport #34412) (#34425) fix: Use customer name instead of name(id) in PSOA (#34412) (cherry picked from commit fa776d2987005f51edf10e112182b8c66c6ac7ec) Co-authored-by: Deepesh Garg --- .../process_statement_of_accounts.html | 2 +- .../process_statement_of_accounts.py | 16 +++++++++++----- .../process_statement_of_accounts_customer.json | 12 ++++++++++-- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html index 3920d4cf0961..b9680dfb3bfd 100644 --- a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html +++ b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html @@ -15,7 +15,7 @@

{{ _("STATEMENTS OF ACCOUNTS") }}

-
{{ _("Customer: ") }} {{filters.party[0] }}
+
{{ _("Customer: ") }} {{filters.party_name[0] }}
{{ _("Date: ") }} {{ frappe.format(filters.from_date, 'Date')}} diff --git a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py index 01f716daa211..39b801432085 100644 --- a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py +++ b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py @@ -23,7 +23,7 @@ class ProcessStatementOfAccounts(Document): def validate(self): if not self.subject: - self.subject = "Statement Of Accounts for {{ customer.name }}" + self.subject = "Statement Of Accounts for {{ customer.customer_name }}" if not self.body: self.body = "Hello {{ customer.name }},
PFA your Statement Of Accounts from {{ doc.from_date }} to {{ doc.to_date }}." @@ -86,6 +86,7 @@ def get_report_pdf(doc, consolidated=True): "account": [doc.account] if doc.account else None, "party_type": "Customer", "party": [entry.customer], + "party_name": [entry.customer_name] if entry.customer_name else None, "presentation_currency": presentation_currency, "group_by": doc.group_by, "currency": doc.currency, @@ -153,7 +154,7 @@ def get_customers_based_on_territory_or_customer_group(customer_collection, coll ] return frappe.get_list( "Customer", - fields=["name", "email_id"], + fields=["name", "customer_name", "email_id"], filters=[[fields_dict[customer_collection], "IN", selected]], ) @@ -176,7 +177,7 @@ def get_customers_based_on_sales_person(sales_person): if sales_person_records.get("Customer"): return frappe.get_list( "Customer", - fields=["name", "email_id"], + fields=["name", "customer_name", "email_id"], filters=[["name", "in", list(sales_person_records["Customer"])]], ) else: @@ -225,7 +226,7 @@ def fetch_customers(customer_collection, collection_name, primary_mandatory): if customer_collection == "Sales Partner": customers = frappe.get_list( "Customer", - fields=["name", "email_id"], + fields=["name", "customer_name", "email_id"], filters=[["default_sales_partner", "=", collection_name]], ) else: @@ -244,7 +245,12 @@ def fetch_customers(customer_collection, collection_name, primary_mandatory): continue customer_list.append( - {"name": customer.name, "primary_email": primary_email, "billing_email": billing_email} + { + "name": customer.name, + "customer_name": customer.customer_name, + "primary_email": primary_email, + "billing_email": billing_email, + } ) return customer_list diff --git a/erpnext/accounts/doctype/process_statement_of_accounts_customer/process_statement_of_accounts_customer.json b/erpnext/accounts/doctype/process_statement_of_accounts_customer/process_statement_of_accounts_customer.json index dd04dc1b3c66..8bffd6a93b92 100644 --- a/erpnext/accounts/doctype/process_statement_of_accounts_customer/process_statement_of_accounts_customer.json +++ b/erpnext/accounts/doctype/process_statement_of_accounts_customer/process_statement_of_accounts_customer.json @@ -1,12 +1,12 @@ { "actions": [], - "allow_workflow": 1, "creation": "2020-08-03 16:35:21.852178", "doctype": "DocType", "editable_grid": 1, "engine": "InnoDB", "field_order": [ "customer", + "customer_name", "billing_email", "primary_email" ], @@ -30,11 +30,18 @@ "fieldtype": "Read Only", "in_list_view": 1, "label": "Billing Email" + }, + { + "fetch_from": "customer.customer_name", + "fieldname": "customer_name", + "fieldtype": "Data", + "label": "Customer Name", + "read_only": 1 } ], "istable": 1, "links": [], - "modified": "2020-08-03 22:55:38.875601", + "modified": "2023-03-13 00:12:34.508086", "modified_by": "Administrator", "module": "Accounts", "name": "Process Statement Of Accounts Customer", @@ -43,5 +50,6 @@ "quick_entry": 1, "sort_field": "modified", "sort_order": "DESC", + "states": [], "track_changes": 1 } \ No newline at end of file From 630386fd8cdfc41b0a017a7e06d649992f84b67c Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 21:11:49 +0530 Subject: [PATCH 292/355] chore: Move source and campaign to additional info section (#34414) * chore: Move source and campaign to additional info section (#34414) (cherry picked from commit c8cc3fc65fb51a21350f445b36739547484bd6a6) # Conflicts: # erpnext/accounts/doctype/sales_invoice/sales_invoice.json * chore: resolve conflicts --------- Co-authored-by: Deepesh Garg --- .../doctype/sales_invoice/sales_invoice.json | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json index f18fef5a1481..9a5b42be4bb7 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json @@ -32,9 +32,6 @@ "cost_center", "dimension_col_break", "project", - "column_break_27", - "campaign", - "source", "currency_and_price_list", "currency", "conversion_rate", @@ -203,7 +200,9 @@ "more_information", "status", "inter_company_invoice_reference", + "campaign", "represents_company", + "source", "customer_group", "col_break23", "is_internal_customer", @@ -2083,10 +2082,6 @@ "fieldname": "company_addr_col_break", "fieldtype": "Column Break" }, - { - "fieldname": "column_break_27", - "fieldtype": "Column Break" - }, { "fieldname": "column_break_52", "fieldtype": "Column Break" @@ -2143,11 +2138,10 @@ "link_fieldname": "consolidated_invoice" } ], - "modified": "2022-11-07 16:02:07.972258", + "modified": "2023-03-13 11:43:15.883055", "modified_by": "Administrator", "module": "Accounts", "name": "Sales Invoice", - "name_case": "Title Case", "naming_rule": "By \"Naming Series\" field", "owner": "Administrator", "permissions": [ From bf0cbe09b9a28f11b4c7d5894b86b7c3f4ef4c99 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 21:15:43 +0530 Subject: [PATCH 293/355] fix: set tax category from address before executing `get_regional_address_details` (#34372) fix: set tax category from address before executing `get_regional_address_details` (#34372) (cherry picked from commit 5c06620f97a7ccf82eb9d4b5bcbdbc9358deecd5) Co-authored-by: Sagar Vora --- erpnext/accounts/party.py | 46 ++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py index 078e51c905f3..4e2e2eb12c89 100644 --- a/erpnext/accounts/party.py +++ b/erpnext/accounts/party.py @@ -32,6 +32,16 @@ from erpnext.accounts.utils import get_fiscal_year from erpnext.exceptions import InvalidAccountCurrency, PartyDisabled, PartyFrozen +PURCHASE_TRANSACTION_TYPES = {"Purchase Order", "Purchase Receipt", "Purchase Invoice"} +SALES_TRANSACTION_TYPES = { + "Quotation", + "Sales Order", + "Delivery Note", + "Sales Invoice", + "POS Invoice", +} +TRANSACTION_TYPES = PURCHASE_TRANSACTION_TYPES | SALES_TRANSACTION_TYPES + class DuplicatePartyAccountError(frappe.ValidationError): pass @@ -124,12 +134,6 @@ def _get_party_details( set_other_values(party_details, party, party_type) set_price_list(party_details, party, party_type, price_list, pos_profile) - party_details["tax_category"] = get_address_tax_category( - party.get("tax_category"), - party_address, - shipping_address if party_type != "Supplier" else party_address, - ) - tax_template = set_taxes( party.name, party_type, @@ -211,20 +215,10 @@ def set_address_details( else: party_details.update(get_company_address(company)) - if doctype and doctype in [ - "Delivery Note", - "Sales Invoice", - "Sales Order", - "Quotation", - "POS Invoice", - ]: - if party_details.company_address: - party_details.update( - get_fetch_values(doctype, "company_address", party_details.company_address) - ) - get_regional_address_details(party_details, doctype, company) + if doctype in SALES_TRANSACTION_TYPES and party_details.company_address: + party_details.update(get_fetch_values(doctype, "company_address", party_details.company_address)) - elif doctype and doctype in ["Purchase Invoice", "Purchase Order", "Purchase Receipt"]: + if doctype in PURCHASE_TRANSACTION_TYPES: if shipping_address: party_details.update( shipping_address=shipping_address, @@ -250,9 +244,21 @@ def set_address_details( **get_fetch_values(doctype, "shipping_address", party_details.billing_address) ) + party_address, shipping_address = ( + party_details.get(billing_address_field), + party_details.shipping_address_name, + ) + + party_details["tax_category"] = get_address_tax_category( + party.get("tax_category"), + party_address, + shipping_address if party_type != "Supplier" else party_address, + ) + + if doctype in TRANSACTION_TYPES: get_regional_address_details(party_details, doctype, company) - return party_details.get(billing_address_field), party_details.shipping_address_name + return party_address, shipping_address @erpnext.allow_regional From c353ba741cc04eeb432449731c7ca252929a1fc8 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 15:08:33 +0530 Subject: [PATCH 294/355] fix: Total row in trail balance report (#34395) fix: Total row in trail balance report (#34395) * fix: Total row in trail balance report * fix: Calculate total after preparing opening and closing (cherry picked from commit c6999fc6879df2049f2bff6ee68ee17ac5911606) Co-authored-by: Deepesh Garg --- .../report/trial_balance/trial_balance.py | 52 ++++++++++--------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/erpnext/accounts/report/trial_balance/trial_balance.py b/erpnext/accounts/report/trial_balance/trial_balance.py index 6d2cd8ed4112..61bc58009a6f 100644 --- a/erpnext/accounts/report/trial_balance/trial_balance.py +++ b/erpnext/accounts/report/trial_balance/trial_balance.py @@ -78,7 +78,6 @@ def validate_filters(filters): def get_data(filters): - accounts = frappe.db.sql( """select name, account_number, parent_account, account_name, root_type, report_type, lft, rgt @@ -118,12 +117,10 @@ def get_data(filters): ignore_closing_entries=not flt(filters.with_period_closing_entry), ) - total_row = calculate_values( - accounts, gl_entries_by_account, opening_balances, filters, company_currency - ) + calculate_values(accounts, gl_entries_by_account, opening_balances) accumulate_values_into_parents(accounts, accounts_by_name) - data = prepare_data(accounts, filters, total_row, parent_children_map, company_currency) + data = prepare_data(accounts, filters, parent_children_map, company_currency) data = filter_out_zero_value_rows( data, parent_children_map, show_zero_values=filters.get("show_zero_values") ) @@ -218,7 +215,7 @@ def get_rootwise_opening_balances(filters, report_type): return opening -def calculate_values(accounts, gl_entries_by_account, opening_balances, filters, company_currency): +def calculate_values(accounts, gl_entries_by_account, opening_balances): init = { "opening_debit": 0.0, "opening_credit": 0.0, @@ -228,22 +225,6 @@ def calculate_values(accounts, gl_entries_by_account, opening_balances, filters, "closing_credit": 0.0, } - total_row = { - "account": "'" + _("Total") + "'", - "account_name": "'" + _("Total") + "'", - "warn_if_negative": True, - "opening_debit": 0.0, - "opening_credit": 0.0, - "debit": 0.0, - "credit": 0.0, - "closing_debit": 0.0, - "closing_credit": 0.0, - "parent_account": None, - "indent": 0, - "has_value": True, - "currency": company_currency, - } - for d in accounts: d.update(init.copy()) @@ -261,8 +242,28 @@ def calculate_values(accounts, gl_entries_by_account, opening_balances, filters, prepare_opening_closing(d) - for field in value_fields: - total_row[field] += d[field] + +def calculate_total_row(accounts, company_currency): + total_row = { + "account": "'" + _("Total") + "'", + "account_name": "'" + _("Total") + "'", + "warn_if_negative": True, + "opening_debit": 0.0, + "opening_credit": 0.0, + "debit": 0.0, + "credit": 0.0, + "closing_debit": 0.0, + "closing_credit": 0.0, + "parent_account": None, + "indent": 0, + "has_value": True, + "currency": company_currency, + } + + for d in accounts: + if not d.parent_account: + for field in value_fields: + total_row[field] += d[field] return total_row @@ -274,7 +275,7 @@ def accumulate_values_into_parents(accounts, accounts_by_name): accounts_by_name[d.parent_account][key] += d[key] -def prepare_data(accounts, filters, total_row, parent_children_map, company_currency): +def prepare_data(accounts, filters, parent_children_map, company_currency): data = [] for d in accounts: @@ -305,6 +306,7 @@ def prepare_data(accounts, filters, total_row, parent_children_map, company_curr row["has_value"] = has_value data.append(row) + total_row = calculate_total_row(accounts, company_currency) data.extend([{}, total_row]) return data From 76e04c8625b92aafdf0467aaa55227789ded214f Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sun, 12 Mar 2023 14:31:37 +0530 Subject: [PATCH 295/355] fix: operation time for multi-level BOM in WO (cherry picked from commit 442ee3adbaab6527ced5a3db4126a395452edc2f) --- erpnext/manufacturing/doctype/bom/bom.py | 5 +++-- erpnext/manufacturing/doctype/work_order/work_order.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py index 8ab79e68be97..619a415c8bc9 100644 --- a/erpnext/manufacturing/doctype/bom/bom.py +++ b/erpnext/manufacturing/doctype/bom/bom.py @@ -31,7 +31,7 @@ class BOMTree: # specifying the attributes to save resources # ref: https://docs.python.org/3/reference/datamodel.html#slots - __slots__ = ["name", "child_items", "is_bom", "item_code", "exploded_qty", "qty"] + __slots__ = ["name", "child_items", "is_bom", "item_code", "qty", "exploded_qty", "bom_qty"] def __init__( self, name: str, is_bom: bool = True, exploded_qty: float = 1.0, qty: float = 1 @@ -50,9 +50,10 @@ def __init__( def __create_tree(self): bom = frappe.get_cached_doc("BOM", self.name) self.item_code = bom.item + self.bom_qty = bom.quantity for item in bom.get("items", []): - qty = item.qty / bom.quantity # quantity per unit + qty = item.stock_qty / bom.quantity # quantity per unit exploded_qty = self.exploded_qty * qty if item.bom_no: child = BOMTree(item.bom_no, exploded_qty=exploded_qty, qty=qty) diff --git a/erpnext/manufacturing/doctype/work_order/work_order.py b/erpnext/manufacturing/doctype/work_order/work_order.py index ae9e9c696288..66b871c746ff 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.py +++ b/erpnext/manufacturing/doctype/work_order/work_order.py @@ -682,7 +682,7 @@ def _get_operations(bom_no, qty=1): for node in bom_traversal: if node.is_bom: - operations.extend(_get_operations(node.name, qty=node.exploded_qty)) + operations.extend(_get_operations(node.name, qty=node.exploded_qty / node.bom_qty)) bom_qty = frappe.get_cached_value("BOM", self.bom_no, "quantity") operations.extend(_get_operations(self.bom_no, qty=1.0 / bom_qty)) From 6303d2d8e142ffac144106ecc23a32272d08bd54 Mon Sep 17 00:00:00 2001 From: HENRY Florian Date: Mon, 13 Mar 2023 14:33:16 +0100 Subject: [PATCH 296/355] chore: fix french translation (#34381) chore: update french translation (cherry picked from commit d267111e1349737fa546b42ec5da84b68c9b5e26) --- erpnext/translations/fr.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/translations/fr.csv b/erpnext/translations/fr.csv index 8367afd3312b..bace129213d9 100644 --- a/erpnext/translations/fr.csv +++ b/erpnext/translations/fr.csv @@ -2801,7 +2801,7 @@ Stock Ledger Entries and GL Entries are reposted for the selected Purchase Recei Stock Levels,Niveaux du Stocks, Stock Liabilities,Passif du Stock, Stock Options,Options du Stock, -Stock Qty,Qté en Stock, +Stock Qty,Qté en unité de stock, Stock Received But Not Billed,Stock Reçus Mais Non Facturés, Stock Reports,Rapports de stock, Stock Summary,Résumé du Stock, From 3e61e763173d14a79912f367bc607a1b6ac1cbfa Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 14 Mar 2023 17:37:03 +0000 Subject: [PATCH 297/355] chore(release): Bumped to Version 14.18.3 ## [14.18.3](https://github.com/frappe/erpnext/compare/v14.18.2...v14.18.3) (2023-03-14) ### Bug Fixes * `BOM Stock Report` ([1c00077](https://github.com/frappe/erpnext/commit/1c0007768b661c6ce031a57f0c937e7a973133df)) * `required_qty` get reset to `1` for Alternative Item in WO ([51bcdb3](https://github.com/frappe/erpnext/commit/51bcdb32f2ab7db1b8a6e5bd0f4b7e59c6d4e641)) * Don't use get_list & get_all interchangeably ([27c524e](https://github.com/frappe/erpnext/commit/27c524e337eecf29dc10cd25a0a8f49edfba52fe)) * Error in consolidated financial statement ([#34330](https://github.com/frappe/erpnext/issues/34330)) ([73866f4](https://github.com/frappe/erpnext/commit/73866f4da7487d7f8fdb815d69fbe6d2cb63764e)) * exchange rate revaluation errors ([#33947](https://github.com/frappe/erpnext/issues/33947)) ([1a629b6](https://github.com/frappe/erpnext/commit/1a629b641845cac7b4b3db32a571d4dd26fbae13)) * filters not getting applied on `Web Form` ([6ef7ddf](https://github.com/frappe/erpnext/commit/6ef7ddfbce271e35123b32bbbe5f605c9b516d1a)) * Linked invoice cancellation issue via timesheet ([#34337](https://github.com/frappe/erpnext/issues/34337)) ([da8cc2b](https://github.com/frappe/erpnext/commit/da8cc2bba9af2e0499975f8649232a7006f5bce0)) * operation time for multi-level BOM in WO ([76e04c8](https://github.com/frappe/erpnext/commit/76e04c8625b92aafdf0467aaa55227789ded214f)) * Set contact filter link in Opportunity ([#34325](https://github.com/frappe/erpnext/issues/34325)) ([c64836d](https://github.com/frappe/erpnext/commit/c64836d3d63b433f6a1df280670fa7b22a8c157f)) * set tax category from address before executing `get_regional_address_details` ([#34372](https://github.com/frappe/erpnext/issues/34372)) ([bf0cbe0](https://github.com/frappe/erpnext/commit/bf0cbe09b9a28f11b4c7d5894b86b7c3f4ef4c99)) * **test:** flaky test case in Payment terms report ([69a5411](https://github.com/frappe/erpnext/commit/69a5411f0ebcc4bbcfb36b3470753e4c556fea1d)) * Total row in trail balance report ([#34395](https://github.com/frappe/erpnext/issues/34395)) ([c353ba7](https://github.com/frappe/erpnext/commit/c353ba741cc04eeb432449731c7ca252929a1fc8)) * Use customer name instead of name(id) in PSOA (backport [#34412](https://github.com/frappe/erpnext/issues/34412)) ([#34425](https://github.com/frappe/erpnext/issues/34425)) ([209adf3](https://github.com/frappe/erpnext/commit/209adf32a5ebf6df70784a1d6567720d6c296343)) ### Performance Improvements * `update_completed_qty()` in `material_request.py` ([b37712c](https://github.com/frappe/erpnext/commit/b37712c038c65e200c5910634b49341199ab2900)) * Stock Entry (Material Transfer) ([1b51463](https://github.com/frappe/erpnext/commit/1b514632d2de619108c3b1345ad7d7513a95c0c6)) ### Reverts * Revert "Update tr.csv (backport #34285)" (#34427) ([b6d059c](https://github.com/frappe/erpnext/commit/b6d059ccb82c7798b6622eb689885dab884cb671)), closes [#34285](https://github.com/frappe/erpnext/issues/34285) [#34427](https://github.com/frappe/erpnext/issues/34427) [#34285](https://github.com/frappe/erpnext/issues/34285) * Revert "fix: Default sales team not getting set" (#34376) ([ed338b1](https://github.com/frappe/erpnext/commit/ed338b13952ea65e727b8741d8ad2844646b6ecd)), closes [#34376](https://github.com/frappe/erpnext/issues/34376) [#34376](https://github.com/frappe/erpnext/issues/34376) [#34284](https://github.com/frappe/erpnext/issues/34284) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 6976133ba421..a5f153f52117 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.18.2" +__version__ = "14.18.3" def get_default_company(user=None): From ba2fd71b6522b39d1f17fc00c497d1d59ea00e7e Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 15 Mar 2023 10:38:49 +0530 Subject: [PATCH 298/355] fix: use max function to get default company address (backport #34116) (#34452) * fix: use max function to get default company address (cherry picked from commit b93c18bd4a0320a22fb03b9f41b92675ee246f19) * test: add test for primary address sorting (cherry picked from commit e0042972c85e916e3081818570d79d2378f222a6) --------- Co-authored-by: Prateek <40106895+prateekkaramchandani@users.noreply.github.com> Co-authored-by: Ankush Menat --- erpnext/setup/doctype/company/company.py | 2 +- erpnext/setup/doctype/company/test_company.py | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index 07ee2890c466..fcdf245659bb 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -808,7 +808,7 @@ def get_default_company_address(name, sort_key="is_primary_address", existing_ad return existing_address if out: - return min(out, key=lambda x: x[1])[0] # find min by sort_key + return max(out, key=lambda x: x[1])[0] # find max by sort_key else: return None diff --git a/erpnext/setup/doctype/company/test_company.py b/erpnext/setup/doctype/company/test_company.py index 29e056e34f04..fd2fe300fac0 100644 --- a/erpnext/setup/doctype/company/test_company.py +++ b/erpnext/setup/doctype/company/test_company.py @@ -11,6 +11,7 @@ from erpnext.accounts.doctype.account.chart_of_accounts.chart_of_accounts import ( get_charts_for_country, ) +from erpnext.setup.doctype.company.company import get_default_company_address test_ignore = ["Account", "Cost Center", "Payment Terms Template", "Salary Component", "Warehouse"] test_dependencies = ["Fiscal Year"] @@ -132,6 +133,38 @@ def test_basic_tree(self, records=None): self.assertTrue(lft >= min_lft) self.assertTrue(rgt <= max_rgt) + def test_primary_address(self): + company = "_Test Company" + + secondary = frappe.get_doc( + { + "address_title": "Non Primary", + "doctype": "Address", + "address_type": "Billing", + "address_line1": "Something", + "city": "Mumbai", + "state": "Maharashtra", + "country": "India", + "is_primary_address": 1, + "pincode": "400098", + "links": [ + { + "link_doctype": "Company", + "link_name": company, + } + ], + } + ) + secondary.insert() + self.addCleanup(secondary.delete) + + primary = frappe.copy_doc(secondary) + primary.is_primary_address = 1 + primary.insert() + self.addCleanup(primary.delete) + + self.assertEqual(get_default_company_address(company), primary.name) + def get_no_of_children(self, company): def get_no_of_children(companies, no_of_children): children = [] From 68f9863ae5f0cde8d1343a05a4964780494836e0 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 15 Mar 2023 14:19:09 +0530 Subject: [PATCH 299/355] test: add timeout to all BOM related tests (backport #34446) (#34453) test: add timeout to all BOM related tests (#34446) * Revert "chore: remove failing test (#34444)" This reverts commit b89ecd482d4c8db69765f633bc22c95619f2f3f9. * test: add timeout to bom tests (cherry picked from commit f95ad039e4564d9516cd654816c0180d2c71a7a9) Co-authored-by: Ankush Menat --- erpnext/manufacturing/doctype/bom/test_bom.py | 29 ++++++++++++++++++- .../bom_update_tool/test_bom_update_tool.py | 4 ++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/erpnext/manufacturing/doctype/bom/test_bom.py b/erpnext/manufacturing/doctype/bom/test_bom.py index d60feb2b3910..01bf2e4315f9 100644 --- a/erpnext/manufacturing/doctype/bom/test_bom.py +++ b/erpnext/manufacturing/doctype/bom/test_bom.py @@ -6,7 +6,7 @@ from functools import partial import frappe -from frappe.tests.utils import FrappeTestCase +from frappe.tests.utils import FrappeTestCase, timeout from frappe.utils import cstr, flt from erpnext.controllers.tests.test_subcontracting_controller import ( @@ -27,6 +27,7 @@ class TestBOM(FrappeTestCase): + @timeout def test_get_items(self): from erpnext.manufacturing.doctype.bom.bom import get_bom_items_as_dict @@ -37,6 +38,7 @@ def test_get_items(self): self.assertTrue(test_records[2]["items"][1]["item_code"] in items_dict) self.assertEqual(len(items_dict.values()), 2) + @timeout def test_get_items_exploded(self): from erpnext.manufacturing.doctype.bom.bom import get_bom_items_as_dict @@ -49,11 +51,13 @@ def test_get_items_exploded(self): self.assertTrue(test_records[0]["items"][1]["item_code"] in items_dict) self.assertEqual(len(items_dict.values()), 3) + @timeout def test_get_items_list(self): from erpnext.manufacturing.doctype.bom.bom import get_bom_items self.assertEqual(len(get_bom_items(bom=get_default_bom(), company="_Test Company")), 3) + @timeout def test_default_bom(self): def _get_default_bom_in_item(): return cstr(frappe.db.get_value("Item", "_Test FG Item 2", "default_bom")) @@ -71,6 +75,7 @@ def _get_default_bom_in_item(): self.assertTrue(_get_default_bom_in_item(), bom.name) + @timeout def test_update_bom_cost_in_all_boms(self): # get current rate for '_Test Item 2' bom_rates = frappe.db.get_values( @@ -99,6 +104,7 @@ def test_update_bom_cost_in_all_boms(self): ): self.assertEqual(d.base_rate, rm_base_rate + 10) + @timeout def test_bom_cost(self): bom = frappe.copy_doc(test_records[2]) bom.insert() @@ -127,6 +133,7 @@ def test_bom_cost(self): self.assertAlmostEqual(bom.base_raw_material_cost, base_raw_material_cost) self.assertAlmostEqual(bom.base_total_cost, base_raw_material_cost + base_op_cost) + @timeout def test_bom_cost_with_batch_size(self): bom = frappe.copy_doc(test_records[2]) bom.docstatus = 0 @@ -145,6 +152,7 @@ def test_bom_cost_with_batch_size(self): self.assertAlmostEqual(bom.operating_cost, op_cost / 2) bom.delete() + @timeout def test_bom_cost_multi_uom_multi_currency_based_on_price_list(self): frappe.db.set_value("Price List", "_Test Price List", "price_not_uom_dependent", 1) for item_code, rate in (("_Test Item", 3600), ("_Test Item Home Desktop Manufactured", 3000)): @@ -181,6 +189,7 @@ def test_bom_cost_multi_uom_multi_currency_based_on_price_list(self): self.assertEqual(bom.base_raw_material_cost, 27000) self.assertEqual(bom.base_total_cost, 33000) + @timeout def test_bom_cost_multi_uom_based_on_valuation_rate(self): bom = frappe.copy_doc(test_records[2]) bom.set_rate_of_sub_assembly_item_based_on_bom = 0 @@ -202,6 +211,7 @@ def test_bom_cost_multi_uom_based_on_valuation_rate(self): self.assertEqual(bom.items[0].rate, 20) + @timeout def test_bom_cost_with_fg_based_operating_cost(self): bom = frappe.copy_doc(test_records[4]) bom.insert() @@ -229,6 +239,7 @@ def test_bom_cost_with_fg_based_operating_cost(self): self.assertAlmostEqual(bom.base_raw_material_cost, base_raw_material_cost) self.assertAlmostEqual(bom.base_total_cost, base_raw_material_cost + base_op_cost) + @timeout def test_subcontractor_sourced_item(self): item_code = "_Test Subcontracted FG Item 1" set_backflush_based_on("Material Transferred for Subcontract") @@ -310,6 +321,7 @@ def test_subcontractor_sourced_item(self): supplied_items = sorted([d.rm_item_code for d in sco.supplied_items]) self.assertEqual(bom_items, supplied_items) + @timeout def test_bom_tree_representation(self): bom_tree = { "Assembly": { @@ -335,6 +347,7 @@ def test_bom_tree_representation(self): for reqd_item, created_item in zip(reqd_order, created_order): self.assertEqual(reqd_item, created_item.item_code) + @timeout def test_generated_variant_bom(self): from erpnext.controllers.item_variant import create_variant @@ -375,6 +388,7 @@ def test_generated_variant_bom(self): self.assertEqual(reqd_item.qty, created_item.qty) self.assertEqual(reqd_item.exploded_qty, created_item.exploded_qty) + @timeout def test_bom_recursion_1st_level(self): """BOM should not allow BOM item again in child""" item_code = make_item(properties={"is_stock_item": 1}).name @@ -387,6 +401,7 @@ def test_bom_recursion_1st_level(self): bom.items[0].bom_no = bom.name bom.save() + @timeout def test_bom_recursion_transitive(self): item1 = make_item(properties={"is_stock_item": 1}).name item2 = make_item(properties={"is_stock_item": 1}).name @@ -408,6 +423,7 @@ def test_bom_recursion_transitive(self): bom1.save() bom2.save() + @timeout def test_bom_with_process_loss_item(self): fg_item_non_whole, fg_item_whole, bom_item = create_process_loss_bom_items() @@ -421,6 +437,7 @@ def test_bom_with_process_loss_item(self): # Items with whole UOMs can't be PL Items self.assertRaises(frappe.ValidationError, bom_doc.submit) + @timeout def test_bom_item_query(self): query = partial( item_query, @@ -440,6 +457,7 @@ def test_bom_item_query(self): ) self.assertTrue(0 < len(filtered) <= 3, msg="Item filtering showing excessive results") + @timeout def test_exclude_exploded_items_from_bom(self): bom_no = get_default_bom() new_bom = frappe.copy_doc(frappe.get_doc("BOM", bom_no)) @@ -458,6 +476,7 @@ def test_exclude_exploded_items_from_bom(self): new_bom.delete() + @timeout def test_valid_transfer_defaults(self): bom_with_op = frappe.db.get_value( "BOM", {"item": "_Test FG Item 2", "with_operations": 1, "is_active": 1} @@ -489,11 +508,13 @@ def test_valid_transfer_defaults(self): self.assertEqual(bom.transfer_material_against, "Work Order") bom.delete() + @timeout def test_bom_name_length(self): """test >140 char names""" bom_tree = {"x" * 140: {" ".join(["abc"] * 35): {}}} create_nested_bom(bom_tree, prefix="") + @timeout def test_version_index(self): bom = frappe.new_doc("BOM") @@ -515,6 +536,7 @@ def test_version_index(self): msg=f"Incorrect index for {existing_boms}", ) + @timeout def test_bom_versioning(self): bom_tree = {frappe.generate_hash(length=10): {frappe.generate_hash(length=10): {}}} bom = create_nested_bom(bom_tree, prefix="") @@ -547,6 +569,7 @@ def test_bom_versioning(self): self.assertNotEqual(amendment.name, version.name) self.assertEqual(int(version.name.split("-")[-1]), 2) + @timeout def test_clear_inpection_quality(self): bom = frappe.copy_doc(test_records[2], ignore_no_copy=True) @@ -565,6 +588,7 @@ def test_clear_inpection_quality(self): self.assertEqual(bom.quality_inspection_template, None) + @timeout def test_bom_pricing_based_on_lpp(self): from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_purchase_receipt @@ -585,6 +609,7 @@ def test_bom_pricing_based_on_lpp(self): bom.submit() self.assertEqual(bom.items[0].rate, 42) + @timeout def test_set_default_bom_for_item_having_single_bom(self): from erpnext.stock.doctype.item.test_item import make_item @@ -621,6 +646,7 @@ def test_set_default_bom_for_item_having_single_bom(self): bom.reload() self.assertEqual(frappe.get_value("Item", fg_item.item_code, "default_bom"), bom.name) + @timeout def test_exploded_items_rate(self): rm_item = make_item( properties={"is_stock_item": 1, "valuation_rate": 99, "last_purchase_rate": 89} @@ -649,6 +675,7 @@ def test_exploded_items_rate(self): bom.submit() self.assertEqual(bom.exploded_items[0].rate, bom.items[0].base_rate) + @timeout def test_bom_cost_update_flag(self): rm_item = make_item( properties={"is_stock_item": 1, "valuation_rate": 99, "last_purchase_rate": 89} diff --git a/erpnext/manufacturing/doctype/bom_update_tool/test_bom_update_tool.py b/erpnext/manufacturing/doctype/bom_update_tool/test_bom_update_tool.py index 5dd557f8ab13..2026f629147a 100644 --- a/erpnext/manufacturing/doctype/bom_update_tool/test_bom_update_tool.py +++ b/erpnext/manufacturing/doctype/bom_update_tool/test_bom_update_tool.py @@ -2,7 +2,7 @@ # License: GNU General Public License v3. See license.txt import frappe -from frappe.tests.utils import FrappeTestCase +from frappe.tests.utils import FrappeTestCase, timeout from erpnext.manufacturing.doctype.bom_update_log.test_bom_update_log import ( update_cost_in_all_boms_in_test, @@ -20,6 +20,7 @@ class TestBOMUpdateTool(FrappeTestCase): def tearDown(self): frappe.db.rollback() + @timeout def test_replace_bom(self): current_bom = "BOM-_Test Item Home Desktop Manufactured-001" @@ -33,6 +34,7 @@ def test_replace_bom(self): self.assertFalse(frappe.db.exists("BOM Item", {"bom_no": current_bom, "docstatus": 1})) self.assertTrue(frappe.db.exists("BOM Item", {"bom_no": bom_doc.name, "docstatus": 1})) + @timeout def test_bom_cost(self): for item in ["BOM Cost Test Item 1", "BOM Cost Test Item 2", "BOM Cost Test Item 3"]: item_doc = create_item(item, valuation_rate=100) From 9f7da21c9333e61bad2eb561ed3de96c8656ab7e Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 11:50:19 +0530 Subject: [PATCH 300/355] feat: Support for Alternative Items in Quotation (#33874) * feat: Filter out alternative item rows in taxes and totals for Quotation - Added a Quotation Item field `is_alternative_item` - Use filtered rows for taxes and totals computation (cherry picked from commit 91982d1e4f7012a6a28ed8116a65fdfd9b9f973f) # Conflicts: # erpnext/selling/doctype/quotation_item/quotation_item.json * feat: Consider filtered items table in JS for totals computation - Set `_items` as filtered rows if quotation else the entire table. Set at entry point of JS API - Use `_items` instead of `items` to compute taxes and charges. Exclude alternative item rows (cherry picked from commit f19eadab9ab1a7defd74cf3b7337012e4e111ac8) * feat: Dialog to select alternative item before creating Sales order - Users can leave the row blank in the dialog if original item is to be used - Else users can select an alternative item against an original item - In the document, users must check `Is Alternative Item` if needed and also specify which item it is an altenrative to since there are no documented mappings (cherry picked from commit cef7dfd0b48ba6ebd6dfb9eabb722c78e4493ccb) # Conflicts: # erpnext/selling/doctype/quotation/quotation.js # erpnext/selling/doctype/quotation_item/quotation_item.json * feat: Filter rows to be mapped on server side mapping function - Pass dialog selections to `make_sales_order` - Map either original item or its alternative depending on mapping - Only qty check for simple rows (without alternatives and not an alternative itself) (cherry picked from commit 94cacb60de00bda141537eb59d3d775004576a3d) * chore: Validate 'alternative_to' field values, must be a valid non-alterntaive item from table (cherry picked from commit fa9b327501a33850374f69f64dcf27ac5b2f2ae3) * fix: Iterate over list instead of map's output and formatting (cherry picked from commit ece6358e60f5c0bfae6129e3d9613de0d9a40402) * fix: Consider only ordered alternative/original item for Quotation status - The original and its alternatives make a set of items where one is chosen - While setting order status of Quotation, check if the chosen item from the set is fully ordered or not - Filter out unselected items from the set - Create a map containing the set of items and if they were ordered or not for ease of grouping - The simple items will work as it used to (cherry picked from commit b3fe7c6dad442c5000959dde8537bfcdf6b55390) * chore: Code simplification - Map is not required, avoid filter multiple times, use single loop instead - Better variable name - Reduce LOC (cherry picked from commit 03321f5f1396bb386b08d289db827962c9b6cbc3) * refactor: Order based alternative items mapping - Alternatives must be followed by a non-alternative item row - On submit, store non-alternative rows in hidden checkbox to avoid recomputation - Check for valid/mappable rows by row name - UI: Select from table rows.Add single row for original/alternative item in dialog - UI: Indicator for alternative items in dialog grid - UI: Indicator legend and description of table - DB: Added check field 'Has Alternative Item' not to be confused with 'Has Alternative' in Mfg (cherry picked from commit db2076db693a54a8962588ba26a31682a1acc99f) # Conflicts: # erpnext/selling/doctype/quotation_item/quotation_item.json * test: Alternative items in Quotation - Taxes and totals, mapping, back updation (cherry picked from commit 74fab53e281b42c2eb3436ae3145d820108b1c13) * fix: Use block variable Co-authored-by: Deepesh Garg (cherry picked from commit 3c96791d52f06b611ea14a2814a651af2ecd7649) * fix: Handle `Get Items From` in Sales Order - Map all non alternatives from Quotation to SO if no selected items - Show disclaimer mentioning that Qtns with alternatives must be mapped to SO from the Qtn form (cherry picked from commit 19456127cfde02bdf6873da5dff89ea519e5dddd) * fix: Map only non alternative items from Quotation in Sales Invoice - Since there's no item selection, only Quotation selection :/ (cherry picked from commit 6b789e2f0492c3e6932852507b746d1111412028) * fix: Merge conflicts --------- Co-authored-by: marination --- erpnext/controllers/taxes_and_totals.py | 32 +++-- .../public/js/controllers/taxes_and_totals.js | 30 ++-- .../selling/doctype/quotation/quotation.js | 124 ++++++++++++++-- .../selling/doctype/quotation/quotation.py | 94 +++++++++++-- .../doctype/quotation/test_quotation.py | 133 ++++++++++++++++++ .../quotation_item/quotation_item.json | 21 ++- .../doctype/sales_order/sales_order.js | 13 +- 7 files changed, 405 insertions(+), 42 deletions(-) diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py index 8c403aa9bfe2..1edd7bf85e1f 100644 --- a/erpnext/controllers/taxes_and_totals.py +++ b/erpnext/controllers/taxes_and_totals.py @@ -24,11 +24,19 @@ class calculate_taxes_and_totals(object): def __init__(self, doc: Document): self.doc = doc frappe.flags.round_off_applicable_accounts = [] + + self._items = self.filter_rows() if self.doc.doctype == "Quotation" else self.doc.get("items") + get_round_off_applicable_accounts(self.doc.company, frappe.flags.round_off_applicable_accounts) self.calculate() + def filter_rows(self): + """Exclude rows, that do not fulfill the filter criteria, from totals computation.""" + items = list(filter(lambda item: not item.get("is_alternative"), self.doc.get("items"))) + return items + def calculate(self): - if not len(self.doc.get("items")): + if not len(self._items): return self.discount_amount_applied = False @@ -70,7 +78,7 @@ def calculate_tax_withholding_net_total(self): if hasattr(self.doc, "tax_withholding_net_total"): sum_net_amount = 0 sum_base_net_amount = 0 - for item in self.doc.get("items"): + for item in self._items: if hasattr(item, "apply_tds") and item.apply_tds: sum_net_amount += item.net_amount sum_base_net_amount += item.base_net_amount @@ -79,7 +87,7 @@ def calculate_tax_withholding_net_total(self): self.doc.base_tax_withholding_net_total = sum_base_net_amount def validate_item_tax_template(self): - for item in self.doc.get("items"): + for item in self._items: if item.item_code and item.get("item_tax_template"): item_doc = frappe.get_cached_doc("Item", item.item_code) args = { @@ -137,7 +145,7 @@ def calculate_item_values(self): return if not self.discount_amount_applied: - for item in self.doc.get("items"): + for item in self._items: self.doc.round_floats_in(item) if item.discount_percentage == 100: @@ -236,7 +244,7 @@ def determine_exclusive_rate(self): if not any(cint(tax.included_in_print_rate) for tax in self.doc.get("taxes")): return - for item in self.doc.get("items"): + for item in self._items: item_tax_map = self._load_item_tax_rate(item.item_tax_rate) cumulated_tax_fraction = 0 total_inclusive_tax_amount_per_qty = 0 @@ -317,7 +325,7 @@ def calculate_net_total(self): self.doc.total ) = self.doc.base_total = self.doc.net_total = self.doc.base_net_total = 0.0 - for item in self.doc.get("items"): + for item in self._items: self.doc.total += item.amount self.doc.total_qty += item.qty self.doc.base_total += item.base_amount @@ -354,7 +362,7 @@ def calculate_taxes(self): ] ) - for n, item in enumerate(self.doc.get("items")): + for n, item in enumerate(self._items): item_tax_map = self._load_item_tax_rate(item.item_tax_rate) for i, tax in enumerate(self.doc.get("taxes")): # tax_amount represents the amount of tax for the current step @@ -363,7 +371,7 @@ def calculate_taxes(self): # Adjust divisional loss to the last item if tax.charge_type == "Actual": actual_tax_dict[tax.idx] -= current_tax_amount - if n == len(self.doc.get("items")) - 1: + if n == len(self._items) - 1: current_tax_amount += actual_tax_dict[tax.idx] # accumulate tax amount into tax.tax_amount @@ -391,7 +399,7 @@ def calculate_taxes(self): ) # set precision in the last item iteration - if n == len(self.doc.get("items")) - 1: + if n == len(self._items) - 1: self.round_off_totals(tax) self._set_in_company_currency(tax, ["tax_amount", "tax_amount_after_discount_amount"]) @@ -570,7 +578,7 @@ def calculate_totals(self): def calculate_total_net_weight(self): if self.doc.meta.get_field("total_net_weight"): self.doc.total_net_weight = 0.0 - for d in self.doc.items: + for d in self._items: if d.total_weight: self.doc.total_net_weight += d.total_weight @@ -630,7 +638,7 @@ def apply_discount_amount(self): if total_for_discount_amount: # calculate item amount after Discount Amount - for i, item in enumerate(self.doc.get("items")): + for i, item in enumerate(self._items): distributed_amount = ( flt(self.doc.discount_amount) * item.net_amount / total_for_discount_amount ) @@ -643,7 +651,7 @@ def apply_discount_amount(self): self.doc.apply_discount_on == "Net Total" or not taxes or total_for_discount_amount == self.doc.net_total - ) and i == len(self.doc.get("items")) - 1: + ) and i == len(self._items) - 1: discount_amount_loss = flt( self.doc.net_total - net_total - self.doc.discount_amount, self.doc.precision("net_total") ) diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index 974b937fa26a..d1a55e6f4247 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -91,6 +91,9 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { } _calculate_taxes_and_totals() { + const is_quotation = this.frm.doc.doctype == "Quotation"; + this.frm.doc._items = is_quotation ? this.filtered_items() : this.frm.doc.items; + this.validate_conversion_rate(); this.calculate_item_values(); this.initialize_taxes(); @@ -122,7 +125,7 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { calculate_item_values() { var me = this; if (!this.discount_amount_applied) { - for (const item of this.frm.doc.items || []) { + for (const item of this.frm.doc._items || []) { frappe.model.round_floats_in(item); item.net_rate = item.rate; item.qty = item.qty === undefined ? (me.frm.doc.is_return ? -1 : 1) : item.qty; @@ -206,7 +209,7 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { }); if(has_inclusive_tax==false) return; - $.each(me.frm.doc["items"] || [], function(n, item) { + $.each(me.frm.doc._items || [], function(n, item) { var item_tax_map = me._load_item_tax_rate(item.item_tax_rate); var cumulated_tax_fraction = 0.0; var total_inclusive_tax_amount_per_qty = 0; @@ -277,7 +280,7 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { var me = this; this.frm.doc.total_qty = this.frm.doc.total = this.frm.doc.base_total = this.frm.doc.net_total = this.frm.doc.base_net_total = 0.0; - $.each(this.frm.doc["items"] || [], function(i, item) { + $.each(this.frm.doc._items || [], function(i, item) { me.frm.doc.total += item.amount; me.frm.doc.total_qty += item.qty; me.frm.doc.base_total += item.base_amount; @@ -330,7 +333,7 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { } }); - $.each(this.frm.doc["items"] || [], function(n, item) { + $.each(this.frm.doc._items || [], function(n, item) { var item_tax_map = me._load_item_tax_rate(item.item_tax_rate); $.each(me.frm.doc["taxes"] || [], function(i, tax) { // tax_amount represents the amount of tax for the current step @@ -339,7 +342,7 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { // Adjust divisional loss to the last item if (tax.charge_type == "Actual") { actual_tax_dict[tax.idx] -= current_tax_amount; - if (n == me.frm.doc["items"].length - 1) { + if (n == me.frm.doc._items.length - 1) { current_tax_amount += actual_tax_dict[tax.idx]; } } @@ -376,7 +379,7 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { } // set precision in the last item iteration - if (n == me.frm.doc["items"].length - 1) { + if (n == me.frm.doc._items.length - 1) { me.round_off_totals(tax); me.set_in_company_currency(tax, ["tax_amount", "tax_amount_after_discount_amount"]); @@ -599,10 +602,11 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { _cleanup() { this.frm.doc.base_in_words = this.frm.doc.in_words = ""; + let items = this.frm.doc._items; - if(this.frm.doc["items"] && this.frm.doc["items"].length) { - if(!frappe.meta.get_docfield(this.frm.doc["items"][0].doctype, "item_tax_amount", this.frm.doctype)) { - $.each(this.frm.doc["items"] || [], function(i, item) { + if(items && items.length) { + if(!frappe.meta.get_docfield(items[0].doctype, "item_tax_amount", this.frm.doctype)) { + $.each(items || [], function(i, item) { delete item["item_tax_amount"]; }); } @@ -655,7 +659,7 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { var net_total = 0; // calculate item amount after Discount Amount if (total_for_discount_amount) { - $.each(this.frm.doc["items"] || [], function(i, item) { + $.each(this.frm.doc._items || [], function(i, item) { distributed_amount = flt(me.frm.doc.discount_amount) * item.net_amount / total_for_discount_amount; item.net_amount = flt(item.net_amount - distributed_amount, precision("base_amount", item)); @@ -663,7 +667,7 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { // discount amount rounding loss adjustment if no taxes if ((!(me.frm.doc.taxes || []).length || total_for_discount_amount==me.frm.doc.net_total || (me.frm.doc.apply_discount_on == "Net Total")) - && i == (me.frm.doc.items || []).length - 1) { + && i == (me.frm.doc._items || []).length - 1) { var discount_amount_loss = flt(me.frm.doc.net_total - net_total - me.frm.doc.discount_amount, precision("net_total")); item.net_amount = flt(item.net_amount + discount_amount_loss, @@ -892,4 +896,8 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { } } + + filtered_items() { + return this.frm.doc.items.filter(item => !item["is_alternative"]); + } }; diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js index b348bd35754f..81ef44d53ed9 100644 --- a/erpnext/selling/doctype/quotation/quotation.js +++ b/erpnext/selling/doctype/quotation/quotation.js @@ -90,7 +90,7 @@ erpnext.selling.QuotationController = class QuotationController extends erpnext. || 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"], + () => this.make_sales_order(), __("Create") ); } @@ -145,6 +145,20 @@ erpnext.selling.QuotationController = class QuotationController extends erpnext. } + make_sales_order() { + var me = this; + + let has_alternative_item = this.frm.doc.items.some((item) => item.is_alternative); + if (has_alternative_item) { + this.show_alternative_items_dialog(); + } else { + frappe.model.open_mapped_doc({ + method: "erpnext.selling.doctype.quotation.quotation.make_sales_order", + frm: me.frm + }); + } + } + set_dynamic_field_label(){ if (this.frm.doc.quotation_to == "Customer") { @@ -220,17 +234,111 @@ erpnext.selling.QuotationController = class QuotationController extends erpnext. } }) } + + show_alternative_items_dialog() { + let me = this; + + const table_fields = [ + { + fieldtype:"Data", + fieldname:"name", + label: __("Name"), + read_only: 1, + }, + { + fieldtype:"Link", + fieldname:"item_code", + options: "Item", + label: __("Item Code"), + read_only: 1, + in_list_view: 1, + columns: 2, + formatter: (value, df, options, doc) => { + return doc.is_alternative ? `${value}` : value; + } + }, + { + fieldtype:"Data", + fieldname:"description", + label: __("Description"), + in_list_view: 1, + read_only: 1, + }, + { + fieldtype:"Currency", + fieldname:"amount", + label: __("Amount"), + options: "currency", + in_list_view: 1, + read_only: 1, + }, + { + fieldtype:"Check", + fieldname:"is_alternative", + label: __("Is Alternative"), + read_only: 1, + }]; + + + this.data = this.frm.doc.items.filter( + (item) => item.is_alternative || item.has_alternative_item + ).map((item) => { + return { + "name": item.name, + "item_code": item.item_code, + "description": item.description, + "amount": item.amount, + "is_alternative": item.is_alternative, + } + }); + + const dialog = new frappe.ui.Dialog({ + title: __("Select Alternative Items for Sales Order"), + fields: [ + { + fieldname: "info", + fieldtype: "HTML", + read_only: 1 + }, + { + fieldname: "alternative_items", + fieldtype: "Table", + cannot_add_rows: true, + in_place_edit: true, + reqd: 1, + data: this.data, + description: __("Select an item from each set to be used in the Sales Order."), + get_data: () => { + return this.data; + }, + fields: table_fields + }, + ], + primary_action: function() { + frappe.model.open_mapped_doc({ + method: "erpnext.selling.doctype.quotation.quotation.make_sales_order", + frm: me.frm, + args: { + selected_items: dialog.fields_dict.alternative_items.grid.get_selected_children() + } + }); + dialog.hide(); + }, + primary_action_label: __('Continue') + }); + + dialog.fields_dict.info.$wrapper.html( + `

+ + Alternative Items +

` + ) + dialog.show(); + } }; cur_frm.script_manager.make(erpnext.selling.QuotationController); -cur_frm.cscript['Make Sales Order'] = function() { - frappe.model.open_mapped_doc({ - method: "erpnext.selling.doctype.quotation.quotation.make_sales_order", - frm: cur_frm - }) -} - frappe.ui.form.on("Quotation Item", "items_on_form_rendered", "packed_items_on_form_rendered", function(frm, cdt, cdn) { // enable tax_amount field if Actual }) diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py index 063813b2dc70..fc66db20d29e 100644 --- a/erpnext/selling/doctype/quotation/quotation.py +++ b/erpnext/selling/doctype/quotation/quotation.py @@ -35,6 +35,9 @@ def validate(self): make_packing_list(self) + def before_submit(self): + self.set_has_alternative_item() + def validate_valid_till(self): if self.valid_till and getdate(self.valid_till) < getdate(self.transaction_date): frappe.throw(_("Valid till date cannot be before transaction date")) @@ -59,7 +62,18 @@ def validate_shopping_cart_items(self): title=_("Unpublished Item"), ) + def set_has_alternative_item(self): + """Mark 'Has Alternative Item' for rows.""" + if not any(row.is_alternative for row in self.get("items")): + return + + items_with_alternatives = self.get_rows_with_alternatives() + for row in self.get("items"): + if not row.is_alternative and row.name in items_with_alternatives: + row.has_alternative_item = 1 + def get_ordered_status(self): + status = "Open" ordered_items = frappe._dict( frappe.db.get_all( "Sales Order Item", @@ -70,16 +84,40 @@ def get_ordered_status(self): ) ) - status = "Open" - if ordered_items: - status = "Ordered" + if not ordered_items: + return status - for item in self.get("items"): - if item.qty > ordered_items.get(item.item_code, 0.0): - status = "Partially Ordered" + has_alternatives = any(row.is_alternative for row in self.get("items")) + self._items = self.get_valid_items() if has_alternatives else self.get("items") + + if any(row.qty > ordered_items.get(row.item_code, 0.0) for row in self._items): + status = "Partially Ordered" + else: + status = "Ordered" return status + def get_valid_items(self): + """ + Filters out items in an alternatives set that were not ordered. + """ + + def is_in_sales_order(row): + in_sales_order = bool( + frappe.db.exists( + "Sales Order Item", {"quotation_item": row.name, "item_code": row.item_code, "docstatus": 1} + ) + ) + return in_sales_order + + def can_map(row) -> bool: + if row.is_alternative or row.has_alternative_item: + return is_in_sales_order(row) + + return True + + return list(filter(can_map, self.get("items"))) + def is_fully_ordered(self): return self.get_ordered_status() == "Ordered" @@ -176,6 +214,22 @@ def print_other_charges(self, docname): def on_recurring(self, reference_doc, auto_repeat_doc): self.valid_till = None + def get_rows_with_alternatives(self): + rows_with_alternatives = [] + table_length = len(self.get("items")) + + for idx, row in enumerate(self.get("items")): + if row.is_alternative: + continue + + if idx == (table_length - 1): + break + + if self.get("items")[idx + 1].is_alternative: + rows_with_alternatives.append(row.name) + + return rows_with_alternatives + def get_list_context(context=None): from erpnext.controllers.website_list_for_contact import get_list_context @@ -221,6 +275,8 @@ def _make_sales_order(source_name, target_doc=None, ignore_permissions=False): ) ) + selected_rows = [x.get("name") for x in frappe.flags.get("args", {}).get("selected_items", [])] + def set_missing_values(source, target): if customer: target.customer = customer.name @@ -244,6 +300,24 @@ def update_item(obj, target, source_parent): target.blanket_order = obj.blanket_order target.blanket_order_rate = obj.blanket_order_rate + def can_map_row(item) -> bool: + """ + Row mapping from Quotation to Sales order: + 1. If no selections, map all non-alternative rows (that sum up to the grand total) + 2. If selections: Is Alternative Item/Has Alternative Item: Map if selected and adequate qty + 3. If selections: Simple row: Map if adequate qty + """ + has_qty = item.qty > 0 + + if not selected_rows: + return not item.is_alternative + + if selected_rows and (item.is_alternative or item.has_alternative_item): + return (item.name in selected_rows) and has_qty + + # Simple row + return has_qty + doclist = get_mapped_doc( "Quotation", source_name, @@ -253,7 +327,7 @@ def update_item(obj, target, source_parent): "doctype": "Sales Order Item", "field_map": {"parent": "prevdoc_docname", "name": "quotation_item"}, "postprocess": update_item, - "condition": lambda doc: doc.qty > 0, + "condition": can_map_row, }, "Sales Taxes and Charges": {"doctype": "Sales Taxes and Charges", "add_if_empty": True}, "Sales Team": {"doctype": "Sales Team", "add_if_empty": True}, @@ -322,7 +396,11 @@ def update_item(obj, target, source_parent): source_name, { "Quotation": {"doctype": "Sales Invoice", "validation": {"docstatus": ["=", 1]}}, - "Quotation Item": {"doctype": "Sales Invoice Item", "postprocess": update_item}, + "Quotation Item": { + "doctype": "Sales Invoice Item", + "postprocess": update_item, + "condition": lambda row: not row.is_alternative, + }, "Sales Taxes and Charges": {"doctype": "Sales Taxes and Charges", "add_if_empty": True}, "Sales Team": {"doctype": "Sales Team", "add_if_empty": True}, }, diff --git a/erpnext/selling/doctype/quotation/test_quotation.py b/erpnext/selling/doctype/quotation/test_quotation.py index cdf5f5d00c58..67f6518657eb 100644 --- a/erpnext/selling/doctype/quotation/test_quotation.py +++ b/erpnext/selling/doctype/quotation/test_quotation.py @@ -457,6 +457,139 @@ def test_packed_items_indices_are_reset_when_product_bundle_is_deleted_from_item expected_index = id + 1 self.assertEqual(item.idx, expected_index) + def test_alternative_items_with_stock_items(self): + """ + Check if taxes & totals considers only non-alternative items with: + - One set of non-alternative & alternative items [first 3 rows] + - One simple stock item + """ + from erpnext.stock.doctype.item.test_item import make_item + + item_list = [] + stock_items = { + "_Test Simple Item 1": 100, + "_Test Alt 1": 120, + "_Test Alt 2": 110, + "_Test Simple Item 2": 200, + } + + for item, rate in stock_items.items(): + make_item(item, {"is_stock_item": 1}) + item_list.append( + { + "item_code": item, + "qty": 1, + "rate": rate, + "is_alternative": bool("Alt" in item), + } + ) + + quotation = make_quotation(item_list=item_list, do_not_submit=1) + quotation.append( + "taxes", + { + "account_head": "_Test Account VAT - _TC", + "charge_type": "On Net Total", + "cost_center": "_Test Cost Center - _TC", + "description": "VAT", + "doctype": "Sales Taxes and Charges", + "rate": 10, + }, + ) + quotation.submit() + + self.assertEqual(quotation.net_total, 300) + self.assertEqual(quotation.grand_total, 330) + + def test_alternative_items_with_service_items(self): + """ + Check if taxes & totals considers only non-alternative items with: + - One set of non-alternative & alternative service items [first 3 rows] + - One simple non-alternative service item + All having the same item code and unique item name/description due to + dynamic services + """ + from erpnext.stock.doctype.item.test_item import make_item + + item_list = [] + service_items = { + "Tiling with Standard Tiles": 100, + "Alt Tiling with Durable Tiles": 150, + "Alt Tiling with Premium Tiles": 180, + "False Ceiling with Material #234": 190, + } + + make_item("_Test Dynamic Service Item", {"is_stock_item": 0}) + + for name, rate in service_items.items(): + item_list.append( + { + "item_code": "_Test Dynamic Service Item", + "item_name": name, + "description": name, + "qty": 1, + "rate": rate, + "is_alternative": bool("Alt" in name), + } + ) + + quotation = make_quotation(item_list=item_list, do_not_submit=1) + quotation.append( + "taxes", + { + "account_head": "_Test Account VAT - _TC", + "charge_type": "On Net Total", + "cost_center": "_Test Cost Center - _TC", + "description": "VAT", + "doctype": "Sales Taxes and Charges", + "rate": 10, + }, + ) + quotation.submit() + + self.assertEqual(quotation.net_total, 290) + self.assertEqual(quotation.grand_total, 319) + + def test_alternative_items_sales_order_mapping_with_stock_items(self): + from erpnext.selling.doctype.quotation.quotation import make_sales_order + from erpnext.stock.doctype.item.test_item import make_item + + frappe.flags.args = frappe._dict() + item_list = [] + stock_items = { + "_Test Simple Item 1": 100, + "_Test Alt 1": 120, + "_Test Alt 2": 110, + "_Test Simple Item 2": 200, + } + + for item, rate in stock_items.items(): + make_item(item, {"is_stock_item": 1}) + item_list.append( + { + "item_code": item, + "qty": 1, + "rate": rate, + "is_alternative": bool("Alt" in item), + "warehouse": "_Test Warehouse - _TC", + } + ) + + quotation = make_quotation(item_list=item_list) + + frappe.flags.args.selected_items = [quotation.items[2]] + sales_order = make_sales_order(quotation.name) + sales_order.delivery_date = add_days(sales_order.transaction_date, 10) + sales_order.save() + + self.assertEqual(sales_order.items[0].item_code, "_Test Alt 2") + self.assertEqual(sales_order.items[1].item_code, "_Test Simple Item 2") + self.assertEqual(sales_order.net_total, 310) + + sales_order.submit() + quotation.reload() + self.assertEqual(quotation.status, "Ordered") + test_records = frappe.get_test_records("Quotation") diff --git a/erpnext/selling/doctype/quotation_item/quotation_item.json b/erpnext/selling/doctype/quotation_item/quotation_item.json index 31a95896bc16..fb810318e930 100644 --- a/erpnext/selling/doctype/quotation_item/quotation_item.json +++ b/erpnext/selling/doctype/quotation_item/quotation_item.json @@ -49,6 +49,8 @@ "pricing_rules", "stock_uom_rate", "is_free_item", + "is_alternative", + "has_alternative_item", "section_break_43", "valuation_rate", "column_break_45", @@ -644,12 +646,28 @@ "no_copy": 1, "options": "currency", "read_only": 1 + }, + { + "default": "0", + "fieldname": "is_alternative", + "fieldtype": "Check", + "label": "Is Alternative", + "print_hide": 1 + }, + { + "default": "0", + "fieldname": "has_alternative_item", + "fieldtype": "Check", + "hidden": 1, + "label": "Has Alternative Item", + "print_hide": 1, + "read_only": 1 } ], "idx": 1, "istable": 1, "links": [], - "modified": "2021-07-15 12:40:51.074820", + "modified": "2023-02-06 11:00:07.042364", "modified_by": "Administrator", "module": "Selling", "name": "Quotation Item", @@ -657,5 +675,6 @@ "permissions": [], "sort_field": "modified", "sort_order": "DESC", + "states": [], "track_changes": 1 } \ No newline at end of file diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js index ee0752549daf..449d461561af 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.js +++ b/erpnext/selling/doctype/sales_order/sales_order.js @@ -275,7 +275,7 @@ erpnext.selling.SalesOrderController = class SalesOrderController extends erpnex if (this.frm.doc.docstatus===0) { this.frm.add_custom_button(__('Quotation'), function() { - erpnext.utils.map_current_doc({ + let d = erpnext.utils.map_current_doc({ method: "erpnext.selling.doctype.quotation.quotation.make_sales_order", source_doctype: "Quotation", target: me.frm, @@ -293,7 +293,16 @@ erpnext.selling.SalesOrderController = class SalesOrderController extends erpnex docstatus: 1, status: ["!=", "Lost"] } - }) + }); + + setTimeout(() => { + d.$parent.append(` + + ${__("Note: Please create Sales Orders from individual Quotations to select from among Alternative Items.")} + + `); + }, 200); + }, __("Get Items From")); } From befd1a0f918d8dc35ef071b8d00dd4ae95e167ab Mon Sep 17 00:00:00 2001 From: Ritwik Puri Date: Thu, 16 Mar 2023 16:04:21 +0530 Subject: [PATCH 301/355] ci: use version specific payments repo (#34468) ci: use version-14 branch of payments repo for v14 erpnext --- .github/helper/install.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/helper/install.sh b/.github/helper/install.sh index 2bb950fcfcc9..cb82d2ad733e 100644 --- a/.github/helper/install.sh +++ b/.github/helper/install.sh @@ -8,8 +8,9 @@ sudo apt update && sudo apt install redis-server libcups2-dev pip install frappe-bench +githubbranch=${GITHUB_BASE_REF:-${GITHUB_REF##*/}} frappeuser=${FRAPPE_USER:-"frappe"} -frappebranch=${FRAPPE_BRANCH:-${GITHUB_BASE_REF:-${GITHUB_REF##*/}}} +frappebranch=${FRAPPE_BRANCH:-$githubbranch} git clone "https://github.com/${frappeuser}/frappe" --branch "${frappebranch}" --depth 1 bench init --skip-assets --frappe-path ~/frappe --python "$(which python)" frappe-bench @@ -56,7 +57,7 @@ sed -i 's/schedule:/# schedule:/g' Procfile sed -i 's/socketio:/# socketio:/g' Procfile sed -i 's/redis_socketio:/# redis_socketio:/g' Procfile -bench get-app payments +bench get-app payments --branch ${githubbranch%"-hotfix"} bench get-app erpnext "${GITHUB_WORKSPACE}" if [ "$TYPE" == "server" ]; then bench setup requirements --dev; fi From 9b608eaa0fcebcb5a8627ec4c14ccfad1057421e Mon Sep 17 00:00:00 2001 From: Raffael Meyer <14891507+barredterra@users.noreply.github.com> Date: Fri, 17 Mar 2023 04:31:29 +0100 Subject: [PATCH 302/355] feat: bank reconciliation and plaid changes (#33986) feat: bank reconciliation and plaid changes (#33986) fix: plaid link refresh: update account ids fix: plaid transactions for credit cards & add accounts on link refresh if they don't exist fix: bank reconciliation amount matching fix: bank reconciliation dialog usability feat: rewrite bank transaction reconciliation to allow multiple transactions to reconcile against vouchers before clearance fix: matching transaction amounts and race condition bug fix: ensure there is a reference number in plaid transactions and other tweaks feat: add references to Payroll Entry Bank Journal Entry feat: only clear Voucher once all Bank GLEs are allocated to Bank Transactions fix: strange type error feat: add payment method field to bank and plaid transactions and prepopulate relevant bank reconciliation new voucher fields feat: bank reconciliation - allow bank transactions to reconcile against themselves for when there are banking amendments fix: bank transaction self-reconcile bug and tidy fix: bank reconciliation datatable index update Co-authored-by: Richard Case <110036763+casesolved-co-uk@users.noreply.github.com> --- erpnext/accounts/doctype/bank/bank.js | 6 +- .../bank_reconciliation_tool.js | 4 +- .../bank_reconciliation_tool.py | 286 +++++++------- .../bank_transaction/bank_transaction.js | 12 +- .../bank_transaction/bank_transaction.json | 18 +- .../bank_transaction/bank_transaction.py | 349 +++++++++++++----- .../doctype/plaid_settings/plaid_connector.py | 2 +- .../doctype/plaid_settings/plaid_settings.js | 2 +- .../doctype/plaid_settings/plaid_settings.py | 63 +++- .../plaid_settings/test_plaid_settings.py | 2 + .../data_table_manager.js | 3 + .../dialog_manager.js | 68 ++-- 12 files changed, 547 insertions(+), 268 deletions(-) diff --git a/erpnext/accounts/doctype/bank/bank.js b/erpnext/accounts/doctype/bank/bank.js index 059e1d315884..35d606ba3ae3 100644 --- a/erpnext/accounts/doctype/bank/bank.js +++ b/erpnext/accounts/doctype/bank/bank.js @@ -118,6 +118,10 @@ erpnext.integrations.refreshPlaidLink = class refreshPlaidLink { } 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 c083189eb276..ae84154f2dff 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 @@ frappe.ui.form.on("Bank Reconciliation Tool", { } }, - 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 @@ frappe.ui.form.on("Bank Reconciliation Tool", { 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 57bc351f4148..c4a23a640c3a 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 @@ def get_bank_transactions(bank_account, from_date=None, to_date=None): 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: @@ -66,7 +66,7 @@ def get_account_balance(bank_account, till_date): 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) @@ -145,10 +145,8 @@ def create_journal_entry_bts( 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, } @@ -158,10 +156,8 @@ def create_journal_entry_bts( { "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, } ) @@ -185,16 +181,22 @@ def create_journal_entry_bts( 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() @@ -218,7 +220,7 @@ def create_payment_entry_bts( 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_value("Bank Account", bank_transaction.bank_account, "account") company = frappe.get_value("Account", company_account, "company") @@ -257,9 +259,15 @@ def create_payment_entry_bts( 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() @@ -341,59 +349,7 @@ def reconcile_vouchers(bank_transaction_name, vouchers): # 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.db.get_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.db.get_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) @@ -412,9 +368,9 @@ def get_linked_payments( 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, @@ -424,7 +380,27 @@ def get_linked_payments( 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( @@ -438,6 +414,7 @@ def check_matching( 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, @@ -449,10 +426,11 @@ def check_matching( 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, @@ -461,7 +439,9 @@ def check_matching( 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( @@ -483,10 +463,10 @@ def get_queries( 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 @@ -497,7 +477,7 @@ def get_queries( company, transaction, document_types, - amount_condition, + exact_match, account_from_to, from_date, to_date, @@ -516,7 +496,7 @@ def get_matching_queries( company, transaction, document_types, - amount_condition, + exact_match, account_from_to, from_date, to_date, @@ -526,8 +506,8 @@ def get_matching_queries( ): 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, @@ -536,11 +516,11 @@ def get_matching_queries( 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, @@ -548,34 +528,70 @@ def get_matching_queries( 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( @@ -603,17 +619,17 @@ def get_ld_matching_query(bank_account, amount_condition, filters): .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( @@ -644,10 +660,10 @@ def get_lr_matching_query(bank_account, amount_condition, filters): 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() @@ -655,7 +671,7 @@ def get_lr_matching_query(bank_account, amount_condition, filters): def get_pe_matching_query( - amount_condition, + exact_match, account_from_to, transaction, from_date, @@ -665,7 +681,7 @@ def get_pe_matching_query( 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" @@ -680,7 +696,8 @@ def get_pe_matching_query( 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, @@ -694,20 +711,19 @@ def get_pe_matching_query( 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, @@ -719,7 +735,7 @@ def get_je_matching_query( # 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 = "" @@ -731,26 +747,29 @@ def get_je_matching_query( 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} @@ -758,11 +777,12 @@ def get_je_matching_query( """ -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, @@ -780,18 +800,20 @@ def get_si_matching_query(amount_condition): `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, @@ -805,9 +827,9 @@ def get_pi_matching_query(amount_condition): 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 6f2900a68082..e548b4c7e9a8 100644 --- a/erpnext/accounts/doctype/bank_transaction/bank_transaction.js +++ b/erpnext/accounts/doctype/bank_transaction/bank_transaction.js @@ -12,8 +12,13 @@ frappe.ui.form.on("Bank Transaction", { }; }); }, - - 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 @@ frappe.ui.form.on("Bank Transaction", { "Journal Entry", "Sales Invoice", "Purchase Invoice", + "Bank Transaction", ]; } }); @@ -49,7 +55,7 @@ const update_clearance_date = (frm, cdt, cdn) => { 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 2bdaa1049b75..768d2f0fa452 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 9b36c93a0f38..15162376c154 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 @@ def on_submit(self): 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 - - 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), - ) + allocated_amount = 0.0 - 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)) - ) + 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) + + 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")) + + 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 + ) - amount = self.deposit or self.withdrawal - if amount == self.allocated_amount: - frappe.db.set_value(self.doctype, self.name, "status", "Reconciled") + 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 - - 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 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) - 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_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_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 @@ def get_doctypes_for_bank_reconciliation(): 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 + ) + + 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 reconciled_bank_transactions + 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 @@ def get_paid_amount(payment_entry, currency, bank_account): 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 @@ def get_paid_amount(payment_entry, currency, bank_account): 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 @@ def get_paid_amount(payment_entry, currency, bank_account): ) -@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, - ) +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) + + 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: - frappe.db.set_value(doc.payment_document, doc.payment_entry, "clearance_date", None) + for pe in bt.payment_entries: + if pe.payment_document == self.doctype and pe.payment_entry == self.name: + bt.remove(pe) + bt.save() + break + - return doc.payment_entry +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/erpnext_integrations/doctype/plaid_settings/plaid_connector.py b/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_connector.py index 38d69932f246..f44fad333cf0 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 @@ class PlaidConnector: 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 3740d0498390..3ba6bb998735 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 @@ erpnext.integrations.plaidLink = class plaidLink { } 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 62ea85fc5d21..f3aa6a379355 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 @@ def add_bank_accounts(response, bank, company): 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 @@ def sync_transactions(bank, bank_account): ) 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 @@ def new_bank_transaction(transaction): 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 @@ def new_bank_transaction(transaction): "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 @@ def new_bank_transaction(transaction): 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 enqueue_synchronization(): 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 e8dc3e258f6d..6d34a204cd25 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 @@ def test_new_transaction(self): "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/public/js/bank_reconciliation_tool/data_table_manager.js b/erpnext/public/js/bank_reconciliation_tool/data_table_manager.js index f7c19a1b7ff3..0cda93880fa5 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 @@ erpnext.accounts.bank_reconciliation.DataTableManager = class DataTableManager { ); } 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 911343d8b64c..321b812de21a 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 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { doctype: "Bank Transaction", filters: { name: this.bank_transaction_name }, fieldname: [ - "date as reference_date", + "date", "deposit", "withdrawal", "currency", @@ -33,6 +33,7 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { "party", "unallocated_amount", "allocated_amount", + "transaction_type", ], }, callback: (r) => { @@ -41,11 +42,23 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { 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 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { 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 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { { name: __("Document Name"), editable: false, - width: 150, + width: 1, }, { name: __("Reference Date"), @@ -112,25 +124,19 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { width: 120, }, { - name: "Posting Date", - editable: false, - width: 120, - }, - { - name: __("Amount"), + name: __("Remaining"), editable: false, width: 100, }, { - name: __("Party"), + name: __("Reference Number"), editable: false, - width: 120, + width: 200, }, - { - name: __("Reference Number"), + name: __("Party"), editable: false, - width: 140, + width: 100, }, ]; } @@ -224,6 +230,16 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { fieldname: "exact_match", 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", @@ -289,7 +305,7 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { fieldtype: "Column Break", }, { - default: "Journal Entry Type", + default: "Bank Entry", fieldname: "journal_entry_type", fieldtype: "Select", label: "Journal Entry Type", @@ -364,7 +380,12 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { 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 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { 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 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { options: "Currency", read_only: 1, }, - { fieldname: "unallocated_amount", fieldtype: "Currency", @@ -593,4 +613,4 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { } } -}; \ No newline at end of file +}; From daa1bb86e36f18f8a0d7fd9dcb696bc604ffdbb4 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 2 Mar 2023 16:40:37 +0530 Subject: [PATCH 303/355] fix: hide `+` button based on `Blanket Order Type` (cherry picked from commit abf9a28d6af8b3c9bfab1e892e56bf3adb18ee8e) --- .../manufacturing/doctype/blanket_order/blanket_order.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/erpnext/manufacturing/doctype/blanket_order/blanket_order.js b/erpnext/manufacturing/doctype/blanket_order/blanket_order.js index d3bb33e86e0b..7b26a14a57b2 100644 --- a/erpnext/manufacturing/doctype/blanket_order/blanket_order.js +++ b/erpnext/manufacturing/doctype/blanket_order/blanket_order.js @@ -7,6 +7,12 @@ frappe.ui.form.on('Blanket Order', { }, setup: function(frm) { + frm.custom_make_buttons = { + 'Purchase Order': 'Purchase Order', + 'Sales Order': 'Sales Order', + 'Quotation': 'Quotation', + }; + frm.add_fetch("customer", "customer_name", "customer_name"); frm.add_fetch("supplier", "supplier_name", "supplier_name"); }, From da915f15103d969c1c6ae2561ae517c68635cdd8 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 2 Mar 2023 17:04:09 +0530 Subject: [PATCH 304/355] feat: add field `Over Order Allowance (%)` in `Buying Settings` (cherry picked from commit f5937f46cb60f3521463f7a4c80c765f8a65e52b) --- .../doctype/buying_settings/buying_settings.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/erpnext/buying/doctype/buying_settings/buying_settings.json b/erpnext/buying/doctype/buying_settings/buying_settings.json index 95857e4604db..8c73e56a99e2 100644 --- a/erpnext/buying/doctype/buying_settings/buying_settings.json +++ b/erpnext/buying/doctype/buying_settings/buying_settings.json @@ -16,6 +16,7 @@ "transaction_settings_section", "po_required", "pr_required", + "over_order_allowance", "column_break_12", "maintain_same_rate", "set_landed_cost_based_on_purchase_invoice_rate", @@ -156,6 +157,13 @@ "fieldname": "set_landed_cost_based_on_purchase_invoice_rate", "fieldtype": "Check", "label": "Set Landed Cost Based on Purchase Invoice Rate" + }, + { + "default": "0", + "description": "Percentage you are allowed to order more against the Blanket Order Quantity. For example: If you have a Blanket Order of Quantity 100 units. and your Allowance is 10% then you are allowed to order 110 units.", + "fieldname": "over_order_allowance", + "fieldtype": "Float", + "label": "Over Order Allowance (%)" } ], "icon": "fa fa-cog", @@ -163,7 +171,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2023-02-28 15:41:32.686805", + "modified": "2023-03-02 17:02:14.404622", "modified_by": "Administrator", "module": "Buying", "name": "Buying Settings", From 35297f6ac1ac6c5023700cac2c7e14367b737009 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Thu, 2 Mar 2023 17:18:46 +0530 Subject: [PATCH 305/355] refactor: rewrite `blanket_order.py` queries in `QB` (cherry picked from commit f3993783a3fc431a2909b445e9d09d9f584ff73e) --- .../doctype/blanket_order/blanket_order.py | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/erpnext/manufacturing/doctype/blanket_order/blanket_order.py b/erpnext/manufacturing/doctype/blanket_order/blanket_order.py index ff2140199de9..3298f43ac362 100644 --- a/erpnext/manufacturing/doctype/blanket_order/blanket_order.py +++ b/erpnext/manufacturing/doctype/blanket_order/blanket_order.py @@ -6,6 +6,7 @@ from frappe import _ from frappe.model.document import Document from frappe.model.mapper import get_mapped_doc +from frappe.query_builder.functions import Sum from frappe.utils import flt, getdate from erpnext.stock.doctype.item.item import get_item_defaults @@ -29,21 +30,23 @@ def validate_duplicate_items(self): def update_ordered_qty(self): ref_doctype = "Sales Order" if self.blanket_order_type == "Selling" else "Purchase Order" + + trans = frappe.qb.DocType(ref_doctype) + trans_item = frappe.qb.DocType(f"{ref_doctype} Item") + item_ordered_qty = frappe._dict( - frappe.db.sql( - """ - select trans_item.item_code, sum(trans_item.stock_qty) as qty - from `tab{0} Item` trans_item, `tab{0}` trans - where trans.name = trans_item.parent - and trans_item.blanket_order=%s - and trans.docstatus=1 - and trans.status not in ('Closed', 'Stopped') - group by trans_item.item_code - """.format( - ref_doctype - ), - self.name, - ) + ( + frappe.qb.from_(trans_item) + .from_(trans) + .select(trans_item.item_code, Sum(trans_item.stock_qty).as_("qty")) + .where( + (trans.name == trans_item.parent) + & (trans_item.blanket_order == self.name) + & (trans.docstatus == 1) + & (trans.status.notin(["Stopped", "Closed"])) + ) + .groupby(trans_item.item_code) + ).run() ) for d in self.items: From 7611a49db7a2785bada3f74aeb1bb330cb1e3c67 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Fri, 3 Mar 2023 10:49:25 +0530 Subject: [PATCH 306/355] fix: don't map item row having `0` qty (cherry picked from commit fc1088d9c4787b12bd9734597604492044eff4a0) --- erpnext/manufacturing/doctype/blanket_order/blanket_order.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/manufacturing/doctype/blanket_order/blanket_order.py b/erpnext/manufacturing/doctype/blanket_order/blanket_order.py index 3298f43ac362..d03f019b0847 100644 --- a/erpnext/manufacturing/doctype/blanket_order/blanket_order.py +++ b/erpnext/manufacturing/doctype/blanket_order/blanket_order.py @@ -82,6 +82,7 @@ def update_item(source, target, source_parent): "doctype": doctype + " Item", "field_map": {"rate": "blanket_order_rate", "parent": "blanket_order"}, "postprocess": update_item, + "condition": lambda item: (flt(item.qty) - flt(item.ordered_qty)) > 0, }, }, ) From 932639b4df5747593667849695c01b953d02ef01 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Fri, 3 Mar 2023 11:11:33 +0530 Subject: [PATCH 307/355] feat: consider `over_order_allowance` while validating order qty (cherry picked from commit 8bcbc45add7767ac947fa7c9b3aaca99fc9dda9b) --- .../doctype/purchase_order/purchase_order.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py index 2415aec8cb93..d9ff98132252 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/purchase_order.py @@ -69,6 +69,7 @@ def validate(self): self.validate_with_previous_doc() self.validate_for_subcontracting() self.validate_minimum_order_qty() + self.validate_against_blanket_order() if self.is_old_subcontracting_flow: self.validate_bom_for_subcontracting_items() @@ -197,6 +198,33 @@ def validate_minimum_order_qty(self): ).format(item_code, qty, itemwise_min_order_qty.get(item_code)) ) + def validate_against_blanket_order(self): + po_data = {} + for item in self.get("items"): + if item.against_blanket_order and item.blanket_order: + if item.blanket_order in po_data: + if item.item_code in po_data[item.blanket_order]: + po_data[item.blanket_order][item.item_code] += item.qty + else: + po_data[item.blanket_order][item.item_code] = item.qty + else: + po_data[item.blanket_order] = {item.item_code: item.qty} + + if po_data: + allowance = flt(frappe.db.get_single_value("Buying Settings", "over_order_allowance")) + for bo_name, item_data in po_data.items(): + bo_doc = frappe.get_doc("Blanket Order", bo_name) + for item in bo_doc.get("items"): + if item.item_code in item_data: + remaining_qty = item.qty - item.ordered_qty + allowed_qty = remaining_qty + (remaining_qty * (allowance / 100)) + if allowed_qty < item_data[item.item_code]: + frappe.throw( + _( + f"Item {item.item_code} cannot be ordered more than {allowed_qty} against Blanket Order {bo_name}." + ) + ) + def validate_bom_for_subcontracting_items(self): for item in self.items: if not item.bom: From 46b5ba9c2aa9093115206cdf79831a86194447de Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Fri, 3 Mar 2023 11:19:28 +0530 Subject: [PATCH 308/355] feat: add field `Over Order Allowance (%)` in `Selling Settings` (cherry picked from commit d7da8928ac44df3a84f6099fc7bfbc9a9161be20) --- .../doctype/selling_settings/selling_settings.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/erpnext/selling/doctype/selling_settings/selling_settings.json b/erpnext/selling/doctype/selling_settings/selling_settings.json index 6ea66a02378c..45ad7d95a155 100644 --- a/erpnext/selling/doctype/selling_settings/selling_settings.json +++ b/erpnext/selling/doctype/selling_settings/selling_settings.json @@ -24,6 +24,7 @@ "so_required", "dn_required", "sales_update_frequency", + "over_order_allowance", "column_break_5", "allow_multiple_items", "allow_against_multiple_purchase_orders", @@ -179,6 +180,12 @@ "fieldname": "allow_sales_order_creation_for_expired_quotation", "fieldtype": "Check", "label": "Allow Sales Order Creation For Expired Quotation" + }, + { + "description": "Percentage you are allowed to order more against the Blanket Order Quantity. For example: If you have a Blanket Order of Quantity 100 units. and your Allowance is 10% then you are allowed to order 110 units.", + "fieldname": "over_order_allowance", + "fieldtype": "Float", + "label": "Over Order Allowance (%)" } ], "icon": "fa fa-cog", @@ -186,7 +193,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2023-02-04 12:37:53.380857", + "modified": "2023-03-03 11:16:54.333615", "modified_by": "Administrator", "module": "Selling", "name": "Selling Settings", From 09b577a91fd32fdc3f974e8b7a3a85ad1f37d51d Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Fri, 3 Mar 2023 22:03:54 +0530 Subject: [PATCH 309/355] feat: consider `over_order_allowance` while validating sales order qty (cherry picked from commit 53701c37b18c7aecfaa00efabf4d3be768e59cb3) --- .../doctype/purchase_order/purchase_order.py | 32 +++-------------- .../doctype/blanket_order/blanket_order.py | 35 +++++++++++++++++++ .../doctype/sales_order/sales_order.py | 4 +++ 3 files changed, 43 insertions(+), 28 deletions(-) diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py index d9ff98132252..06b9d29e69c7 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/purchase_order.py @@ -21,6 +21,9 @@ from erpnext.accounts.party import get_party_account, get_party_account_currency from erpnext.buying.utils import check_on_hold_or_closed_status, validate_for_items from erpnext.controllers.buying_controller import BuyingController +from erpnext.manufacturing.doctype.blanket_order.blanket_order import ( + validate_against_blanket_order, +) from erpnext.setup.doctype.item_group.item_group import get_item_group_defaults from erpnext.stock.doctype.item.item import get_item_defaults, get_last_purchase_details from erpnext.stock.stock_balance import get_ordered_qty, update_bin_qty @@ -69,7 +72,7 @@ def validate(self): self.validate_with_previous_doc() self.validate_for_subcontracting() self.validate_minimum_order_qty() - self.validate_against_blanket_order() + validate_against_blanket_order(self) if self.is_old_subcontracting_flow: self.validate_bom_for_subcontracting_items() @@ -198,33 +201,6 @@ def validate_minimum_order_qty(self): ).format(item_code, qty, itemwise_min_order_qty.get(item_code)) ) - def validate_against_blanket_order(self): - po_data = {} - for item in self.get("items"): - if item.against_blanket_order and item.blanket_order: - if item.blanket_order in po_data: - if item.item_code in po_data[item.blanket_order]: - po_data[item.blanket_order][item.item_code] += item.qty - else: - po_data[item.blanket_order][item.item_code] = item.qty - else: - po_data[item.blanket_order] = {item.item_code: item.qty} - - if po_data: - allowance = flt(frappe.db.get_single_value("Buying Settings", "over_order_allowance")) - for bo_name, item_data in po_data.items(): - bo_doc = frappe.get_doc("Blanket Order", bo_name) - for item in bo_doc.get("items"): - if item.item_code in item_data: - remaining_qty = item.qty - item.ordered_qty - allowed_qty = remaining_qty + (remaining_qty * (allowance / 100)) - if allowed_qty < item_data[item.item_code]: - frappe.throw( - _( - f"Item {item.item_code} cannot be ordered more than {allowed_qty} against Blanket Order {bo_name}." - ) - ) - def validate_bom_for_subcontracting_items(self): for item in self.items: if not item.bom: diff --git a/erpnext/manufacturing/doctype/blanket_order/blanket_order.py b/erpnext/manufacturing/doctype/blanket_order/blanket_order.py index d03f019b0847..32f1c365adef 100644 --- a/erpnext/manufacturing/doctype/blanket_order/blanket_order.py +++ b/erpnext/manufacturing/doctype/blanket_order/blanket_order.py @@ -87,3 +87,38 @@ def update_item(source, target, source_parent): }, ) return target_doc + + +def validate_against_blanket_order(order_doc): + if order_doc.doctype in ("Sales Order", "Purchase Order"): + order_data = {} + + for item in order_doc.get("items"): + if item.against_blanket_order and item.blanket_order: + if item.blanket_order in order_data: + if item.item_code in order_data[item.blanket_order]: + order_data[item.blanket_order][item.item_code] += item.qty + else: + order_data[item.blanket_order][item.item_code] = item.qty + else: + order_data[item.blanket_order] = {item.item_code: item.qty} + + if order_data: + allowance = flt( + frappe.db.get_single_value( + "Selling Settings" if order_doc.doctype == "Sales Order" else "Buying Settings", + "over_order_allowance", + ) + ) + for bo_name, item_data in order_data.items(): + bo_doc = frappe.get_doc("Blanket Order", bo_name) + for item in bo_doc.get("items"): + if item.item_code in item_data: + remaining_qty = item.qty - item.ordered_qty + allowed_qty = remaining_qty + (remaining_qty * (allowance / 100)) + if allowed_qty < item_data[item.item_code]: + frappe.throw( + _("Item {0} cannot be ordered more than {1} against Blanket Order {2}.").format( + item.item_code, allowed_qty, bo_name + ) + ) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 385d0f3a5856..ee9161bee48e 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -21,6 +21,9 @@ ) from erpnext.accounts.party import get_party_account from erpnext.controllers.selling_controller import SellingController +from erpnext.manufacturing.doctype.blanket_order.blanket_order import ( + validate_against_blanket_order, +) from erpnext.manufacturing.doctype.production_plan.production_plan import ( get_items_for_material_requests, ) @@ -52,6 +55,7 @@ def validate(self): self.validate_warehouse() self.validate_drop_ship() self.validate_serial_no_based_delivery() + validate_against_blanket_order(self) validate_inter_company_party( self.doctype, self.customer, self.company, self.inter_company_order_reference ) From c46e5a81d449c26a3d119a4656edabb2e28d644f Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Mon, 13 Mar 2023 17:21:07 +0530 Subject: [PATCH 310/355] test: add test cases for `Over Order Allowance` against `Blanket Order` (cherry picked from commit 66f650061dbae8c1093878f5b808e2a62f3a144a) --- .../blanket_order/test_blanket_order.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py b/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py index 2f1f3ae0f52e..58f3c9505989 100644 --- a/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py +++ b/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py @@ -63,6 +63,33 @@ def test_purchase_order_creation(self): po1.currency = get_company_currency(po1.company) self.assertEqual(po1.items[0].qty, (bo.items[0].qty - bo.items[0].ordered_qty)) + def test_over_order_allowance(self): + # Sales Order + bo = make_blanket_order(blanket_order_type="Selling", quantity=100) + + frappe.flags.args.doctype = "Sales Order" + so = make_order(bo.name) + so.currency = get_company_currency(so.company) + so.delivery_date = today() + so.items[0].qty = 110 + self.assertRaises(frappe.ValidationError, so.submit) + + frappe.db.set_single_value("Selling Settings", "over_order_allowance", 10) + so.submit() + + # Purchase Order + bo = make_blanket_order(blanket_order_type="Purchasing", quantity=100) + + frappe.flags.args.doctype = "Purchase Order" + po = make_order(bo.name) + po.currency = get_company_currency(po.company) + po.schedule_date = today() + po.items[0].qty = 110 + self.assertRaises(frappe.ValidationError, po.submit) + + frappe.db.set_single_value("Buying Settings", "over_order_allowance", 10) + po.submit() + def make_blanket_order(**args): args = frappe._dict(args) From 9ab7bff0e0ed2ec100307ed7eb29b7c9b0984865 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Thu, 16 Mar 2023 09:54:06 +0530 Subject: [PATCH 311/355] fix: difference amount calculation for company currency accounts (cherry picked from commit 48fae0c1ce7b95bac8ba6e46516ac58a070e6003) --- .../payment_reconciliation.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py index e3d9c26b2d15..c9e3998ac8a0 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py @@ -221,12 +221,15 @@ def add_invoice_entries(self, non_reconciled_invoices): def get_difference_amount(self, payment_entry, invoice, allocated_amount): difference_amount = 0 - if invoice.get("exchange_rate") and payment_entry.get("exchange_rate", 1) != invoice.get( - "exchange_rate", 1 - ): - allocated_amount_in_ref_rate = payment_entry.get("exchange_rate", 1) * allocated_amount - allocated_amount_in_inv_rate = invoice.get("exchange_rate", 1) * allocated_amount - difference_amount = allocated_amount_in_ref_rate - allocated_amount_in_inv_rate + if frappe.get_cached_value( + "Account", self.receivable_payable_account, "account_currency" + ) != frappe.get_cached_value("Company", self.company, "default_currency"): + if invoice.get("exchange_rate") and payment_entry.get("exchange_rate", 1) != invoice.get( + "exchange_rate", 1 + ): + allocated_amount_in_ref_rate = payment_entry.get("exchange_rate", 1) * allocated_amount + allocated_amount_in_inv_rate = invoice.get("exchange_rate", 1) * allocated_amount + difference_amount = allocated_amount_in_ref_rate - allocated_amount_in_inv_rate return difference_amount From e81ad864cf37c881c9f02fc5d8c528baa32e73c1 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Thu, 16 Mar 2023 10:35:06 +0530 Subject: [PATCH 312/355] test: difference amount should not be calculated for base currency (cherry picked from commit 861387f16447fc635e959a706090724a55840d4b) --- .../test_payment_reconciliation.py | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py index f9dda0593b0d..fca6caedd506 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py @@ -5,7 +5,7 @@ import frappe from frappe import qb -from frappe.tests.utils import FrappeTestCase +from frappe.tests.utils import FrappeTestCase, change_settings from frappe.utils import add_days, flt, nowdate from erpnext import get_default_cost_center @@ -824,6 +824,52 @@ def test_cost_center_filter_on_vouchers(self): payment_vouchers = [x.get("reference_name") for x in pr.get("payments")] self.assertCountEqual(payment_vouchers, [je2.name, pe2.name]) + @change_settings( + "Accounts Settings", + { + "allow_multi_currency_invoices_against_single_party_account": 1, + }, + ) + def test_no_difference_amount_for_base_currency_accounts(self): + # Make Sale Invoice + si = self.create_sales_invoice( + qty=1, rate=1, posting_date=nowdate(), do_not_save=True, do_not_submit=True + ) + si.customer = self.customer + si.currency = "EUR" + si.conversion_rate = 85 + si.debit_to = self.debit_to + si.save().submit() + + # Make payment using Payment Entry + pe1 = create_payment_entry( + company=self.company, + payment_type="Receive", + party_type="Customer", + party=self.customer, + paid_from=self.debit_to, + paid_to=self.bank, + paid_amount=100, + ) + + pe1.save() + pe1.submit() + + pr = self.create_payment_reconciliation() + pr.party = self.customer + pr.receivable_payable_account = self.debit_to + pr.get_unreconciled_entries() + + self.assertEqual(len(pr.invoices), 1) + self.assertEqual(len(pr.payments), 1) + + invoices = [x.as_dict() for x in pr.invoices] + payments = [pr.payments[0].as_dict()] + pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments})) + + self.assertEqual(pr.allocation[0].allocated_amount, 85) + self.assertEqual(pr.allocation[0].difference_amount, 0) + def make_customer(customer_name, currency=None): if not frappe.db.exists("Customer", customer_name): From c71b4ed6ec327c78186c082e307819145c57eefb Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Thu, 16 Mar 2023 11:12:44 +0530 Subject: [PATCH 313/355] refactor: difference amt validation for same currency accounts (cherry picked from commit ec075122b661b36763de0ecc6d5cb57895278871) --- .../test_payment_reconciliation.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py index fca6caedd506..3be11ae31a71 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py @@ -349,6 +349,11 @@ def test_payment_against_invoice(self): 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})) + + # Difference amount should not be calculated for base currency accounts + for row in pr.allocation: + self.assertEqual(flt(row.get("difference_amount")), 0.0) + pr.reconcile() si.reload() @@ -390,6 +395,11 @@ def test_payment_against_journal(self): 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})) + + # Difference amount should not be calculated for base currency accounts + for row in pr.allocation: + self.assertEqual(flt(row.get("difference_amount")), 0.0) + pr.reconcile() # check PR tool output @@ -414,6 +424,11 @@ def test_journal_against_invoice(self): 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})) + + # Difference amount should not be calculated for base currency accounts + for row in pr.allocation: + self.assertEqual(flt(row.get("difference_amount")), 0.0) + pr.reconcile() # assert outstanding @@ -450,6 +465,11 @@ def test_journal_against_journal(self): 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})) + + # Difference amount should not be calculated for base currency accounts + for row in pr.allocation: + self.assertEqual(flt(row.get("difference_amount")), 0.0) + pr.reconcile() self.assertEqual(pr.get("invoices"), []) From 560407493518b810f1b39c4793b57cbba6dbf93f Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Tue, 14 Mar 2023 14:12:39 +0530 Subject: [PATCH 314/355] chore: `Allow Zero Valuation Rate` msg in SE (cherry picked from commit 22ad9a1903b8cd51829b68df02d05708054871cd) --- .../stock/doctype/stock_entry/stock_entry.py | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index e263a278bef9..7e39cb92f706 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -661,6 +661,7 @@ def set_basic_rate(self, reset_outgoing_rate=True, raise_error_if_no_rate=True): ) finished_item_qty = sum(d.transfer_qty for d in self.items if d.is_finished_item) + items = [] # Set basic rate for incoming items for d in self.get("items"): if d.s_warehouse or d.set_basic_rate_manually: @@ -668,12 +669,7 @@ def set_basic_rate(self, reset_outgoing_rate=True, raise_error_if_no_rate=True): if d.allow_zero_valuation_rate: d.basic_rate = 0.0 - frappe.msgprint( - _( - "Row {0}: Item rate has been updated to zero as Allow Zero Valuation Rate is checked for item {1}" - ).format(d.idx, d.item_code), - alert=1, - ) + items.append(d.item_code) elif d.is_finished_item: if self.purpose == "Manufacture": @@ -700,6 +696,20 @@ def set_basic_rate(self, reset_outgoing_rate=True, raise_error_if_no_rate=True): d.basic_rate = flt(d.basic_rate) d.basic_amount = flt(flt(d.transfer_qty) * flt(d.basic_rate), d.precision("basic_amount")) + if items: + message = "" + + if len(items) > 1: + message = _( + "Items rate has been updated to zero as Allow Zero Valuation Rate is checked for the following items: {0}" + ).format(", ".join(frappe.bold(item) for item in items)) + else: + message = _( + "Item rate has been updated to zero as Allow Zero Valuation Rate is checked for item {0}" + ).format(frappe.bold(items[0])) + + frappe.msgprint(message, alert=True) + def set_rate_for_outgoing_items(self, reset_outgoing_rate=True, raise_error_if_no_rate=True): outgoing_items_cost = 0.0 for d in self.get("items"): From 55d002c6364622b40a47d5c8e009d99f097174c7 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 19 Mar 2023 18:05:33 +0530 Subject: [PATCH 315/355] fix: Update account number from parent company (#34474) fix: Update account number from parent company (#34474) (cherry picked from commit d8ece86463084a750c1395297a9d1b48d70ee774) Co-authored-by: Deepesh Garg --- erpnext/accounts/doctype/account/account.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py index 9dff1168fded..6635d3e733b2 100644 --- a/erpnext/accounts/doctype/account/account.py +++ b/erpnext/accounts/doctype/account/account.py @@ -393,7 +393,13 @@ def update_account_number(name, account_name, account_number=None, from_descenda if ancestors and not allow_independent_account_creation: for ancestor in ancestors: - if frappe.db.get_value("Account", {"account_name": old_acc_name, "company": ancestor}, "name"): + old_name = frappe.db.get_value( + "Account", + {"account_number": old_acc_number, "account_name": old_acc_name, "company": ancestor}, + "name", + ) + + if old_name: # same account in parent company exists allow_child_account_creation = _("Allow Account Creation Against Child Company") From f146479362d3a2b46d720d635db71c37058e1a41 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 19 Mar 2023 18:06:00 +0530 Subject: [PATCH 316/355] fix: Multiple accounting dimension filtering in AR/AP reports (#34464) fix: Multiple accounting dimension filtering in AR/AP reports (#34464) Co-authored-by: Anand Baburajan (cherry picked from commit 7b630217bde9e7a54f4a26f44e1b549218aaf275) Co-authored-by: Deepesh Garg --- .../accounts/report/accounts_receivable/accounts_receivable.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py index 94a1510f0959..11de9a098dc4 100755 --- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py +++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py @@ -859,7 +859,7 @@ def add_accounting_dimensions_filters(self): ) else: self.qb_selection_filter.append( - self.ple[dimension.fieldname] == self.filters[dimension.fieldname] + self.ple[dimension.fieldname].isin(self.filters[dimension.fieldname]) ) def is_invoice(self, ple): From de5fabc67a352b701bb6918efe1ec8a396074610 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 19 Mar 2023 18:06:45 +0530 Subject: [PATCH 317/355] chore: Update user manual link (#34478) * chore: Update user manual link (#34478) (cherry picked from commit be723bb9d483c615fa0b14b0115338e39e32a698) # Conflicts: # erpnext/patches.txt * chore: resolve conflicts --------- Co-authored-by: Deepesh Garg --- erpnext/patches.txt | 1 + erpnext/patches/v13_0/update_docs_link.py | 14 ++++++++++++++ erpnext/setup/install.py | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 erpnext/patches/v13_0/update_docs_link.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 3c0eb5107ce9..5803f46dea35 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -325,5 +325,6 @@ erpnext.patches.v14_0.update_entry_type_for_journal_entry erpnext.patches.v14_0.change_autoname_for_tax_withheld_vouchers erpnext.patches.v14_0.update_asset_value_for_manual_depr_entries erpnext.patches.v14_0.set_pick_list_status +erpnext.patches.v13_0.update_docs_link # below migration patches should always run last erpnext.patches.v14_0.migrate_gl_to_payment_ledger diff --git a/erpnext/patches/v13_0/update_docs_link.py b/erpnext/patches/v13_0/update_docs_link.py new file mode 100644 index 000000000000..4bc5c053d27a --- /dev/null +++ b/erpnext/patches/v13_0/update_docs_link.py @@ -0,0 +1,14 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors +# License: MIT. See LICENSE + + +import frappe + + +def execute(): + navbar_settings = frappe.get_single("Navbar Settings") + for item in navbar_settings.help_dropdown: + if item.is_standard and item.route == "https://erpnext.com/docs/user/manual": + item.route = "https://docs.erpnext.com/docs/v14/user/manual/en/introduction" + + navbar_settings.save() diff --git a/erpnext/setup/install.py b/erpnext/setup/install.py index 1f7dddfb95bc..088958d1b266 100644 --- a/erpnext/setup/install.py +++ b/erpnext/setup/install.py @@ -155,7 +155,7 @@ def add_standard_navbar_items(): { "item_label": "Documentation", "item_type": "Route", - "route": "https://erpnext.com/docs/user/manual", + "route": "https://docs.erpnext.com/docs/v14/user/manual/en/introduction", "is_standard": 1, }, { From 4acde4468fa6574dfeb6ca786fe4b8796a5969eb Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 20 Mar 2023 14:27:34 +0530 Subject: [PATCH 318/355] fix: patch depends on Currency Exchange Settings (#34494) fix: patch depends on Currency Exchange Settings (#34494) (cherry picked from commit d791dc11a3eea4445e2e772125260923c43c3f9e) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- erpnext/patches/v14_0/update_opportunity_currency_fields.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erpnext/patches/v14_0/update_opportunity_currency_fields.py b/erpnext/patches/v14_0/update_opportunity_currency_fields.py index b803e9fa2dd2..af736919d83b 100644 --- a/erpnext/patches/v14_0/update_opportunity_currency_fields.py +++ b/erpnext/patches/v14_0/update_opportunity_currency_fields.py @@ -7,6 +7,9 @@ def execute(): + frappe.reload_doc( + "accounts", "doctype", "currency_exchange_settings" + ) # get_exchange_rate depends on Currency Exchange Settings frappe.reload_doctype("Opportunity") opportunities = frappe.db.get_list( "Opportunity", From baa789be347d14420b66498cd978c5a8380d6d2a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 20 Mar 2023 14:48:46 +0530 Subject: [PATCH 319/355] perf: index against_sales_invoice field on DN items (backport #34509) (#34510) perf: index against_sales_invoice field on DN items (#34509) This is used on Sales invoice dashboard and takes a lot of time to load as db size increases. Results: Before: ~10-20 seconds to load dashboard After: few milliseconds because of index [skip ci] (cherry picked from commit 109a9f1390306740fa91f05ca458f5f1a968d6b8) Co-authored-by: Ankush Menat --- .../stock/doctype/delivery_note_item/delivery_note_item.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json b/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json index 916ab2a05bea..1763269193ad 100644 --- a/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json +++ b/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json @@ -636,7 +636,8 @@ "no_copy": 1, "options": "Sales Invoice", "print_hide": 1, - "read_only": 1 + "read_only": 1, + "search_index": 1 }, { "fieldname": "so_detail", @@ -837,7 +838,7 @@ "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2022-11-09 12:17:50.850142", + "modified": "2023-03-20 14:24:10.406746", "modified_by": "Administrator", "module": "Stock", "name": "Delivery Note Item", From 848e56bd4ca07ecbb1ea64dd226680c96a17a29c Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Sun, 5 Feb 2023 13:09:34 +0530 Subject: [PATCH 320/355] fix: Overallocation of 'qty' from Cr Notes to Parent Invoice Cr Notes 'qty' are overallocated to parent invoice, when there are mulitple instances of same item in Invoice. --- erpnext/accounts/report/gross_profit/gross_profit.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py index e4b4f2260c6d..a86c9c22b466 100644 --- a/erpnext/accounts/report/gross_profit/gross_profit.py +++ b/erpnext/accounts/report/gross_profit/gross_profit.py @@ -501,7 +501,14 @@ def get_average_rate_based_on_group_by(self): ): returned_item_rows = self.returned_invoices[row.parent][row.item_code] for returned_item_row in returned_item_rows: - row.qty += flt(returned_item_row.qty) + # returned_items 'qty' should be stateful + if returned_item_row.qty != 0: + if row.qty >= abs(returned_item_row.qty): + row.qty += returned_item_row.qty + returned_item_row.qty = 0 + else: + row.qty = 0 + returned_item_row.qty += row.qty row.base_amount += flt(returned_item_row.base_amount, self.currency_precision) row.buying_amount = flt(flt(row.qty) * flt(row.buying_rate), self.currency_precision) if flt(row.qty) or row.base_amount: From e0e89b4209b558fee62e34868d3fe17e80e6724b Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Tue, 14 Mar 2023 16:22:49 +0530 Subject: [PATCH 321/355] refactor: Ignore linked Cr Notes in Report output --- erpnext/accounts/report/gross_profit/gross_profit.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py index a86c9c22b466..41ba11adc6fe 100644 --- a/erpnext/accounts/report/gross_profit/gross_profit.py +++ b/erpnext/accounts/report/gross_profit/gross_profit.py @@ -741,6 +741,8 @@ def load_invoice_items(self): if self.filters.to_date: conditions += " and posting_date <= %(to_date)s" + conditions += " and (is_return = 0 or (is_return=1 and return_against is null))" + if self.filters.item_group: conditions += " and {0}".format(get_item_group_condition(self.filters.item_group)) From aead554d3124abc7ecf8a0bd2fe2f202f0635c98 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Sun, 5 Feb 2023 14:48:29 +0530 Subject: [PATCH 322/355] test: Gross Profit report output for Cr notes 2 New test cases added. 1. Standalone Cr notes will be reported as normal Invoices 2. Cr notes against an Invoice will not overallocate qty if there are multiple instances of same item --- .../report/gross_profit/test_gross_profit.py | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/erpnext/accounts/report/gross_profit/test_gross_profit.py b/erpnext/accounts/report/gross_profit/test_gross_profit.py index 21681bef5b5a..82fe1a0ba129 100644 --- a/erpnext/accounts/report/gross_profit/test_gross_profit.py +++ b/erpnext/accounts/report/gross_profit/test_gross_profit.py @@ -381,3 +381,82 @@ def test_order_connected_dn_and_inv(self): } gp_entry = [x for x in data if x.parent_invoice == sinv.name] self.assertDictContainsSubset(expected_entry, gp_entry[0]) + + def test_crnote_against_invoice_with_multiple_instances_of_same_item(self): + """ + Item Qty for Sales Invoices with multiple instances of same item go in the -ve. Ideally, the credit noteshould cancel out the invoice items. + """ + from erpnext.accounts.doctype.sales_invoice.sales_invoice import make_sales_return + + # Invoice with an item added twice + sinv = self.create_sales_invoice(qty=1, rate=100, posting_date=nowdate(), do_not_submit=True) + sinv.append("items", frappe.copy_doc(sinv.items[0], ignore_no_copy=False)) + sinv = sinv.save().submit() + + # Create Credit Note for Invoice + cr_note = make_sales_return(sinv.name) + cr_note = cr_note.save().submit() + + filters = frappe._dict( + company=self.company, from_date=nowdate(), to_date=nowdate(), group_by="Invoice" + ) + + columns, data = execute(filters=filters) + expected_entry = { + "parent_invoice": sinv.name, + "currency": "INR", + "sales_invoice": self.item, + "customer": self.customer, + "posting_date": frappe.utils.datetime.date.fromisoformat(nowdate()), + "item_code": self.item, + "item_name": self.item, + "warehouse": "Stores - _GP", + "qty": 0.0, + "avg._selling_rate": 0.0, + "valuation_rate": 0.0, + "selling_amount": -100.0, + "buying_amount": 0.0, + "gross_profit": -100.0, + "gross_profit_%": 100.0, + } + gp_entry = [x for x in data if x.parent_invoice == sinv.name] + # Both items of Invoice should have '0' qty + self.assertEqual(len(gp_entry), 2) + self.assertDictContainsSubset(expected_entry, gp_entry[0]) + self.assertDictContainsSubset(expected_entry, gp_entry[1]) + + def test_standalone_cr_notes(self): + """ + Standalone cr notes will be reported as usual + """ + # Make Cr Note + sinv = self.create_sales_invoice( + qty=-1, rate=100, posting_date=nowdate(), do_not_save=True, do_not_submit=True + ) + sinv.is_return = 1 + sinv = sinv.save().submit() + + filters = frappe._dict( + company=self.company, from_date=nowdate(), to_date=nowdate(), group_by="Invoice" + ) + + columns, data = execute(filters=filters) + expected_entry = { + "parent_invoice": sinv.name, + "currency": "INR", + "sales_invoice": self.item, + "customer": self.customer, + "posting_date": frappe.utils.datetime.date.fromisoformat(nowdate()), + "item_code": self.item, + "item_name": self.item, + "warehouse": "Stores - _GP", + "qty": -1.0, + "avg._selling_rate": 100.0, + "valuation_rate": 0.0, + "selling_amount": -100.0, + "buying_amount": 0.0, + "gross_profit": -100.0, + "gross_profit_%": 100.0, + } + gp_entry = [x for x in data if x.parent_invoice == sinv.name] + self.assertDictContainsSubset(expected_entry, gp_entry[0]) From 560df6330a1b43648a91e3f1514d8ff5dc382c15 Mon Sep 17 00:00:00 2001 From: Anand Baburajan Date: Tue, 21 Mar 2023 14:31:23 +0530 Subject: [PATCH 323/355] fix: incorrect depr schedules after asset repair [v14] (#34527) * fix: backport missing changes from #30838 * fix: incorrect schedule after repair --- erpnext/assets/doctype/asset/asset.py | 35 +++++--- .../doctype/asset_repair/asset_repair.py | 86 ++++++++++++------- 2 files changed, 80 insertions(+), 41 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 9db406585068..ee73729da0a9 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -375,12 +375,19 @@ def _make_depreciation_schedule(self, finance_book, start, date_of_disposal): value_after_depreciation -= flt(depreciation_amount, self.precision("gross_purchase_amount")) # Adjust depreciation amount in the last period based on the expected value after useful life - if finance_book.expected_value_after_useful_life and ( - ( - n == cint(number_of_pending_depreciations) - 1 - and value_after_depreciation != finance_book.expected_value_after_useful_life + if ( + finance_book.expected_value_after_useful_life + and ( + ( + n == cint(number_of_pending_depreciations) - 1 + and value_after_depreciation != finance_book.expected_value_after_useful_life + ) + or value_after_depreciation < finance_book.expected_value_after_useful_life + ) + and ( + not self.flags.increase_in_asset_value_due_to_repair + or not finance_book.depreciation_method in ("Written Down Value", "Double Declining Balance") ) - or value_after_depreciation < finance_book.expected_value_after_useful_life ): depreciation_amount += value_after_depreciation - finance_book.expected_value_after_useful_life skip_row = True @@ -1175,17 +1182,21 @@ def get_total_days(date, frequency): @erpnext.allow_regional def get_depreciation_amount(asset, depreciable_value, row): if row.depreciation_method in ("Straight Line", "Manual"): - # if the Depreciation Schedule is being prepared for the first time - if not asset.flags.increase_in_asset_life: + # if the Depreciation Schedule is being modified after Asset Repair due to increase in asset life and value + if asset.flags.increase_in_asset_life: depreciation_amount = ( - flt(asset.gross_purchase_amount) - flt(row.expected_value_after_useful_life) + flt(row.value_after_depreciation) - flt(row.expected_value_after_useful_life) + ) / (date_diff(asset.to_date, asset.available_for_use_date) / 365) + # if the Depreciation Schedule is being modified after Asset Repair due to increase in asset value + elif asset.flags.increase_in_asset_value_due_to_repair: + depreciation_amount = ( + flt(row.value_after_depreciation) - flt(row.expected_value_after_useful_life) ) / flt(row.total_number_of_depreciations) - - # if the Depreciation Schedule is being modified after Asset Repair + # if the Depreciation Schedule is being prepared for the first time else: depreciation_amount = ( - flt(row.value_after_depreciation) - flt(row.expected_value_after_useful_life) - ) / (date_diff(asset.to_date, asset.available_for_use_date) / 365) + flt(asset.gross_purchase_amount) - flt(row.expected_value_after_useful_life) + ) / flt(row.total_number_of_depreciations) else: depreciation_amount = flt(depreciable_value * (flt(row.rate_of_depreciation) / 100)) diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py index 9ccf778a4bb6..eec7ccba7545 100644 --- a/erpnext/assets/doctype/asset_repair/asset_repair.py +++ b/erpnext/assets/doctype/asset_repair/asset_repair.py @@ -39,43 +39,51 @@ def calculate_total_repair_cost(self): def before_submit(self): self.check_repair_status() + self.asset_doc.flags.increase_in_asset_value_due_to_repair = False + if self.get("stock_consumption") or self.get("capitalize_repair_cost"): + self.asset_doc.flags.increase_in_asset_value_due_to_repair = True + self.increase_asset_value() - if self.get("stock_consumption"): - self.check_for_stock_items_and_warehouse() - self.decrease_stock_quantity() - if self.get("capitalize_repair_cost"): - self.make_gl_entries() - if ( - frappe.db.get_value("Asset", self.asset, "calculate_depreciation") - and self.increase_in_asset_life - ): - self.modify_depreciation_schedule() - - self.asset_doc.flags.ignore_validate_update_after_submit = True - self.asset_doc.prepare_depreciation_data() - self.asset_doc.save() + + if self.get("stock_consumption"): + self.check_for_stock_items_and_warehouse() + self.decrease_stock_quantity() + if self.get("capitalize_repair_cost"): + self.make_gl_entries() + if self.asset_doc.calculate_depreciation and self.increase_in_asset_life: + self.modify_depreciation_schedule() + + self.asset_doc.flags.ignore_validate_update_after_submit = True + self.asset_doc.prepare_depreciation_data() + if self.asset_doc.calculate_depreciation: + self.update_asset_expected_value_after_useful_life() + self.asset_doc.save() def before_cancel(self): self.asset_doc = frappe.get_doc("Asset", self.asset) + self.asset_doc.flags.increase_in_asset_value_due_to_repair = False + if self.get("stock_consumption") or self.get("capitalize_repair_cost"): + self.asset_doc.flags.increase_in_asset_value_due_to_repair = True + self.decrease_asset_value() - if self.get("stock_consumption"): - self.increase_stock_quantity() - if self.get("capitalize_repair_cost"): - self.ignore_linked_doctypes = ("GL Entry", "Stock Ledger Entry") - self.make_gl_entries(cancel=True) - self.db_set("stock_entry", None) - if ( - frappe.db.get_value("Asset", self.asset, "calculate_depreciation") - and self.increase_in_asset_life - ): - self.revert_depreciation_schedule_on_cancellation() - - self.asset_doc.flags.ignore_validate_update_after_submit = True - self.asset_doc.prepare_depreciation_data() - self.asset_doc.save() + + if self.get("stock_consumption"): + self.increase_stock_quantity() + if self.get("capitalize_repair_cost"): + self.ignore_linked_doctypes = ("GL Entry", "Stock Ledger Entry") + self.make_gl_entries(cancel=True) + self.db_set("stock_entry", None) + if self.asset_doc.calculate_depreciation and self.increase_in_asset_life: + self.revert_depreciation_schedule_on_cancellation() + + self.asset_doc.flags.ignore_validate_update_after_submit = True + self.asset_doc.prepare_depreciation_data() + if self.asset_doc.calculate_depreciation: + self.update_asset_expected_value_after_useful_life() + self.asset_doc.save() def after_delete(self): frappe.get_doc("Asset", self.asset).set_status() @@ -95,6 +103,26 @@ def check_for_stock_items_and_warehouse(self): title=_("Missing Warehouse"), ) + def update_asset_expected_value_after_useful_life(self): + for row in self.asset_doc.get("finance_books"): + if row.depreciation_method in ("Written Down Value", "Double Declining Balance"): + accumulated_depreciation_after_full_schedule = [ + d.accumulated_depreciation_amount + for d in self.asset_doc.get("schedules") + if cint(d.finance_book_id) == row.idx + ] + + accumulated_depreciation_after_full_schedule = max( + accumulated_depreciation_after_full_schedule + ) + + asset_value_after_full_schedule = flt( + flt(row.value_after_depreciation) - flt(accumulated_depreciation_after_full_schedule), + row.precision("expected_value_after_useful_life"), + ) + + row.expected_value_after_useful_life = asset_value_after_full_schedule + def increase_asset_value(self): total_value_of_stock_consumed = self.get_total_value_of_stock_consumed() From 53c3fff2353c8c7363dd55421d7c43350ae3af07 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 21 Mar 2023 14:15:31 +0530 Subject: [PATCH 324/355] fix: E-commerce issue with Item Variants (cherry picked from commit aaa4d1eb5582028fcf1e46de0fa1a176311e5562) --- erpnext/e_commerce/variant_selector/utils.py | 24 ++++++++++++++++++- .../generators/item/item_configure.js | 22 ++++++++++++----- 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/erpnext/e_commerce/variant_selector/utils.py b/erpnext/e_commerce/variant_selector/utils.py index df62c23aa486..1a3e73792816 100644 --- a/erpnext/e_commerce/variant_selector/utils.py +++ b/erpnext/e_commerce/variant_selector/utils.py @@ -1,5 +1,5 @@ import frappe -from frappe.utils import cint +from frappe.utils import cint, flt from erpnext.e_commerce.doctype.e_commerce_settings.e_commerce_settings import ( get_shopping_cart_settings, @@ -166,6 +166,27 @@ def get_next_attribute_and_values(item_code, selected_attributes): else: product_info = None + product_id = "" + website_warehouse = "" + if exact_match or filtered_items: + if exact_match and len(exact_match) == 1: + product_id = exact_match[0] + elif filtered_items_count == 1: + product_id = list(filtered_items)[0] + + if product_id: + website_warehouse = frappe.get_cached_value( + "Website Item", {"item_code": product_id}, "website_warehouse" + ) + + available_qty = 0.0 + if website_warehouse: + available_qty = flt( + frappe.db.get_value( + "Bin", {"item_code": product_id, "warehouse": website_warehouse}, "actual_qty" + ) + ) + return { "next_attribute": next_attribute, "valid_options_for_attributes": valid_options_for_attributes, @@ -173,6 +194,7 @@ def get_next_attribute_and_values(item_code, selected_attributes): "filtered_items": filtered_items if filtered_items_count < 10 else [], "exact_match": exact_match, "product_info": product_info, + "available_qty": available_qty, } diff --git a/erpnext/templates/generators/item/item_configure.js b/erpnext/templates/generators/item/item_configure.js index 231ae0587ed4..613c967e3d60 100644 --- a/erpnext/templates/generators/item/item_configure.js +++ b/erpnext/templates/generators/item/item_configure.js @@ -186,14 +186,14 @@ class ItemConfigure { this.dialog.$status_area.empty(); } - get_html_for_item_found({ filtered_items_count, filtered_items, exact_match, product_info }) { + get_html_for_item_found({ filtered_items_count, filtered_items, exact_match, product_info, available_qty, settings }) { const one_item = exact_match.length === 1 ? exact_match[0] : filtered_items_count === 1 ? filtered_items[0] : ''; - const item_add_to_cart = one_item ? ` + let item_add_to_cart = one_item ? `
${__('Clear Values')} @@ -233,6 +236,10 @@ class ItemConfigure { `; /* eslint-disable indent */ + if (!product_info?.allow_items_not_in_stock && available_qty === 0) { + item_add_to_cart = ''; + } + return ` ${item_found_status} ${item_add_to_cart} @@ -257,12 +264,15 @@ class ItemConfigure { btn_clear_values() { this.dialog.fields_list.forEach(f => { - f.df.options = f.df.options.map(option => { - option.disabled = false; - return option; - }); + if (f.df?.options) { + f.df.options = f.df.options.map(option => { + option.disabled = false; + return option; + }); + } }); this.dialog.clear(); + this.dialog.$status_area.empty(); this.on_attribute_selection(); } From 17744a99a1dd84371bdece2bac78a8d5a62c1e40 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 16:01:09 +0530 Subject: [PATCH 325/355] refactor(bank reconciliation tool): currency symbol fix and concurrent usage (#34501) * fix: incorrect currency symbol in Bank Reconciliation tool (cherry picked from commit 2d14d92b32021f1a5af76eae8a7f83bfb06e58db) * refactor: allow for concurrent use of reconciliation tool 1. set default filter dates a period of one month from current date (cherry picked from commit 1eea585d29586eeee1e17853f1267231a7fcc26a) --------- Co-authored-by: ruthra kumar --- .../bank_reconciliation_tool.js | 19 +++++++++++++------ .../bank_reconciliation_tool.json | 14 +++++++++++--- .../dialog_manager.js | 10 +++++----- 3 files changed, 29 insertions(+), 14 deletions(-) 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 ae84154f2dff..d97726144113 100644 --- a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js +++ b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js @@ -18,6 +18,10 @@ frappe.ui.form.on("Bank Reconciliation Tool", { }, onload: function (frm) { + // Set default filter dates + today = frappe.datetime.get_today() + frm.doc.bank_statement_from_date = frappe.datetime.add_months(today, -1); + frm.doc.bank_statement_to_date = today; frm.trigger('bank_account'); }, @@ -32,6 +36,7 @@ frappe.ui.form.on("Bank Reconciliation Tool", { }, refresh: function (frm) { + frm.disable_save(); frappe.require("bank-reconciliation-tool.bundle.js", () => frm.trigger("make_reconciliation_tool") ); @@ -72,10 +77,12 @@ frappe.ui.form.on("Bank Reconciliation Tool", { }, }) }); - }, - after_save: function (frm) { - frm.trigger("make_reconciliation_tool"); + frm.add_custom_button(__('Get Unreconciled Entries'), function() { + frm.trigger("make_reconciliation_tool"); + }); + frm.change_custom_button_type('Get Unreconciled Entries', null, 'primary'); + }, bank_account: function (frm) { @@ -89,7 +96,7 @@ frappe.ui.form.on("Bank Reconciliation Tool", { r.account, "account_currency", (r) => { - frm.currency = r.account_currency; + frm.doc.account_currency = r.account_currency; frm.trigger("render_chart"); } ); @@ -162,9 +169,9 @@ frappe.ui.form.on("Bank Reconciliation Tool", { "reconciliation_tool_cards" ).$wrapper, bank_statement_closing_balance: - frm.doc.bank_statement_closing_balance, + frm.doc.bank_statement_closing_balance, cleared_balance: frm.cleared_balance, - currency: frm.currency, + currency: frm.doc.account_currency, } ); }, diff --git a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.json b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.json index 80993d6608de..93fc4439d351 100644 --- a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.json +++ b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.json @@ -14,6 +14,7 @@ "to_reference_date", "filter_by_reference_date", "column_break_2", + "account_currency", "account_opening_balance", "bank_statement_closing_balance", "section_break_1", @@ -59,7 +60,7 @@ "fieldname": "account_opening_balance", "fieldtype": "Currency", "label": "Account Opening Balance", - "options": "Currency", + "options": "account_currency", "read_only": 1 }, { @@ -67,7 +68,7 @@ "fieldname": "bank_statement_closing_balance", "fieldtype": "Currency", "label": "Closing Balance", - "options": "Currency" + "options": "account_currency" }, { "fieldname": "section_break_1", @@ -104,13 +105,20 @@ "fieldname": "filter_by_reference_date", "fieldtype": "Check", "label": "Filter by Reference Date" + }, + { + "fieldname": "account_currency", + "fieldtype": "Link", + "hidden": 1, + "label": "Account Currency", + "options": "Currency" } ], "hide_toolbar": 1, "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2023-01-13 13:00:02.022919", + "modified": "2023-03-07 11:02:24.535714", "modified_by": "Administrator", "module": "Accounts", "name": "Bank Reconciliation Tool", diff --git a/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js b/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js index 321b812de21a..1271e38049a0 100644 --- a/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js +++ b/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js @@ -391,14 +391,14 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { fieldname: "deposit", fieldtype: "Currency", label: "Deposit", - options: "currency", + options: "account_currency", read_only: 1, }, { fieldname: "withdrawal", fieldtype: "Currency", label: "Withdrawal", - options: "currency", + options: "account_currency", read_only: 1, }, { @@ -416,18 +416,18 @@ erpnext.accounts.bank_reconciliation.DialogManager = class DialogManager { fieldname: "allocated_amount", fieldtype: "Currency", label: "Allocated Amount", - options: "Currency", + options: "account_currency", read_only: 1, }, { fieldname: "unallocated_amount", fieldtype: "Currency", label: "Unallocated Amount", - options: "Currency", + options: "account_currency", read_only: 1, }, { - fieldname: "currency", + fieldname: "account_currency", fieldtype: "Link", label: "Currency", options: "Currency", From d24f4d287382939d8a679c1c9444b116a2bf3e18 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 16:05:41 +0530 Subject: [PATCH 326/355] fix(client): Amount calculation for 0 qty debit notes (#34455) fix(client): Amount calculation for 0 qty debit notes (#34455) fix(client): Amount calculaton for 0 qty debit notes Co-authored-by: Anand Baburajan (cherry picked from commit ee6c107d588ca30e909d9add4a026755eda722de) Co-authored-by: Deepesh Garg --- erpnext/public/js/controllers/taxes_and_totals.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index d1a55e6f4247..8e57ebd36774 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -135,7 +135,7 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { } else { // allow for '0' qty on Credit/Debit notes - let qty = item.qty || -1 + let qty = item.qty || me.frm.doc.is_debit_note ? 1 : -1; item.net_amount = item.amount = flt(item.rate * qty, precision("amount", item)); } From 01f4cc76fc65ae35ec99e0599818b141a2393f2e Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 16:06:54 +0530 Subject: [PATCH 327/355] fix: POS not picking up pos profile company address instead fetch any random company address (#34521) fix: POS not picking up pos profile company address instead fetch any random company address (#34521) (cherry picked from commit 6966fa4d88cac11311d0d4e4416684f75646148c) Co-authored-by: Vishal Dhayagude --- erpnext/accounts/doctype/pos_invoice/pos_invoice.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/pos_invoice/pos_invoice.js b/erpnext/accounts/doctype/pos_invoice/pos_invoice.js index 56b857992c75..cced37589bad 100644 --- a/erpnext/accounts/doctype/pos_invoice/pos_invoice.js +++ b/erpnext/accounts/doctype/pos_invoice/pos_invoice.js @@ -112,7 +112,8 @@ erpnext.selling.POSInvoiceController = class POSInvoiceController extends erpnex party_type: "Customer", account: this.frm.doc.debit_to, price_list: this.frm.doc.selling_price_list, - pos_profile: pos_profile + pos_profile: pos_profile, + company_address: this.frm.doc.company_address }, () => { this.apply_pricing_rule(); }); From dd0c8334cdbe0da2852206c9390004325627c5ab Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 16:08:32 +0530 Subject: [PATCH 328/355] fix: german translations (#34312) fix: german translations (#34312) fix: some german translations (cherry picked from commit 59c2e7ec3ee25198a44fb7ac7157b8117eb3e4e6) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- erpnext/translations/de.csv | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/erpnext/translations/de.csv b/erpnext/translations/de.csv index 1094d4bd9841..2aa6dbc0d1c4 100644 --- a/erpnext/translations/de.csv +++ b/erpnext/translations/de.csv @@ -2012,30 +2012,27 @@ Please identify/create Account (Ledger) for type - {0},Bitte identifizieren / er Please login as another user to register on Marketplace,"Bitte melden Sie sich als anderer Benutzer an, um sich auf dem Marktplatz zu registrieren", 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.,"Bitte sicher stellen, dass wirklich alle Transaktionen dieses Unternehmens gelöscht werden sollen. Die Stammdaten bleiben bestehen. Diese Aktion kann nicht rückgängig gemacht werden.", Please mention Basic and HRA component in Company,Bitte erwähnen Sie die Basis- und HRA-Komponente in der Firma, -Please mention Round Off Account in Company,Bitte Abschlusskonto in Unternehmen vermerken, -Please mention Round Off Cost Center in Company,Bitte Abschlusskostenstelle in Unternehmen vermerken, -Please mention no of visits required,"Bitte bei ""Besuche erforderlich"" NEIN angeben", -Please mention the Lead Name in Lead {0},Bitte erwähnen Sie den Lead Name in Lead {0}, -Please pull items from Delivery Note,Bitte Artikel vom Lieferschein nehmen, +Please mention Round Off Account in Company,Bitte ein Standardkonto Konto für Rundungsdifferenzen in Unternehmen einstellen, +Please mention Round Off Cost Center in Company,Bitte eine Kostenstelle für Rundungsdifferenzen in Unternehmen einstellen, +Please mention no of visits required,Bitte die Anzahl der benötigten Wartungsbesuche angeben, +Please pull items from Delivery Note,Bitte Artikel aus dem Lieferschein ziehen, Please register the SIREN number in the company information file,Bitte registrieren Sie die SIREN-Nummer in der Unternehmensinformationsdatei, Please remove this Invoice {0} from C-Form {1},Bitte diese Rechnung {0} vom Kontaktformular {1} entfernen, Please save the patient first,Bitte speichern Sie den Patienten zuerst, Please save the report again to rebuild or update,"Speichern Sie den Bericht erneut, um ihn neu zu erstellen oder zu aktualisieren", "Please select Allocated Amount, Invoice Type and Invoice Number in atleast one row","Bitte zugewiesenen Betrag, Rechnungsart und Rechnungsnummer in mindestens einer Zeile auswählen", Please select Apply Discount On,"Bitte ""Rabatt anwenden auf"" auswählen", -Please select BOM against item {0},Bitte wählen Sie Stückliste gegen Artikel {0}, -Please select BOM for Item in Row {0},Bitte Stückliste für Artikel in Zeile {0} auswählen, -Please select BOM in BOM field for Item {0},Bitte aus dem Stücklistenfeld eine Stückliste für Artikel {0} auswählen, -Please select Category first,Bitte zuerst Kategorie auswählen, -Please select Charge Type first,Bitte zuerst Chargentyp auswählen, -Please select Company,Bitte Unternehmen auswählen, +Please select BOM against item {0},Bitte eine Stückliste für Artikel {0} auswählen, +Please select BOM for Item in Row {0},Bitte eine Stückliste für den Artikel in Zeile {0} auswählen, +Please select BOM in BOM field for Item {0},Bitte im Stücklistenfeld eine Stückliste für Artikel {0} auswählen, +Please select Category first,Bitte zuerst eine Kategorie auswählen, +Please select Charge Type first,Bitte zuerst einen Chargentyp auswählen, +Please select Company,Bitte ein Unternehmen auswählen, Please select Company and Designation,Bitte wählen Sie Unternehmen und Position, Please select Company and Posting Date to getting entries,"Bitte wählen Sie Unternehmen und Buchungsdatum, um Einträge zu erhalten", Please select Company first,Bitte zuerst Unternehmen auswählen, Please select Completion Date for Completed Asset Maintenance Log,Bitte wählen Sie Fertigstellungsdatum für das abgeschlossene Wartungsprotokoll für den Vermögenswert, Please select Completion Date for Completed Repair,Bitte wählen Sie das Abschlussdatum für die abgeschlossene Reparatur, -Please select Course,Bitte wählen Sie Kurs, -Please select Drug,Bitte wählen Sie Arzneimittel, Please select Employee,Bitte wählen Sie Mitarbeiter, Please select Existing Company for creating Chart of Accounts,Bitte wählen Sie Bestehende Unternehmen für die Erstellung von Konten, Please select Healthcare Service,Bitte wählen Sie Gesundheitsdienst, @@ -7805,7 +7802,7 @@ Default Employee Advance Account,Standardkonto für Vorschüsse an Arbeitnehmer, Default Cost of Goods Sold Account,Standard-Herstellkosten, Default Income Account,Standard-Ertragskonto, Default Deferred Revenue Account,Standardkonto für passive Rechnungsabgrenzung, -Default Deferred Expense Account,Standard-Rechnungsabgrenzungsposten, +Default Deferred Expense Account,Standardkonto für aktive Rechnungsabgrenzung, Default Payroll Payable Account,Standardkonto für Verbindlichkeiten aus Lohn und Gehalt, Default Expense Claim Payable Account,Standard-Expense Claim Zahlbares Konto, Stock Settings,Lager-Einstellungen, @@ -8873,7 +8870,7 @@ Add Topic to Courses,Hinzufügen eines Themas zu Kursen, This topic is already added to the existing courses,Dieses Thema wurde bereits zu den bestehenden Kursen hinzugefügt, "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","Wenn Shopify keinen Kunden in der Bestellung hat, berücksichtigt das System beim Synchronisieren der Bestellungen den Standardkunden für die Bestellung", The accounts are set by the system automatically but do confirm these defaults,"Die Konten werden vom System automatisch festgelegt, bestätigen jedoch diese Standardeinstellungen", -Default Round Off Account,Standard-Rundungskonto, +Default Round Off Account,Standardkonto für Rundungsdifferenzen, Failed Import Log,Importprotokoll fehlgeschlagen, Fixed Error Log,Fehlerprotokoll behoben, Company {0} already exists. Continuing will overwrite the Company and Chart of Accounts,Firma {0} existiert bereits. Durch Fortfahren werden das Unternehmen und der Kontenplan überschrieben, From e271935673f1e27d7bd8ab7b7e1731a22b2e0bee Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 21 Mar 2023 12:52:05 +0000 Subject: [PATCH 329/355] chore(release): Bumped to Version 14.19.0 # [14.19.0](https://github.com/frappe/erpnext/compare/v14.18.3...v14.19.0) (2023-03-21) ### Bug Fixes * **client:** Amount calculation for 0 qty debit notes ([#34455](https://github.com/frappe/erpnext/issues/34455)) ([d24f4d2](https://github.com/frappe/erpnext/commit/d24f4d287382939d8a679c1c9444b116a2bf3e18)) * difference amount calculation for company currency accounts ([9ab7bff](https://github.com/frappe/erpnext/commit/9ab7bff0e0ed2ec100307ed7eb29b7c9b0984865)) * don't map item row having `0` qty ([7611a49](https://github.com/frappe/erpnext/commit/7611a49db7a2785bada3f74aeb1bb330cb1e3c67)) * E-commerce issue with Item Variants ([53c3fff](https://github.com/frappe/erpnext/commit/53c3fff2353c8c7363dd55421d7c43350ae3af07)) * german translations ([#34312](https://github.com/frappe/erpnext/issues/34312)) ([dd0c833](https://github.com/frappe/erpnext/commit/dd0c8334cdbe0da2852206c9390004325627c5ab)) * hide `+` button based on `Blanket Order Type` ([daa1bb8](https://github.com/frappe/erpnext/commit/daa1bb86e36f18f8a0d7fd9dcb696bc604ffdbb4)) * incorrect depr schedules after asset repair [v14] ([#34527](https://github.com/frappe/erpnext/issues/34527)) ([560df63](https://github.com/frappe/erpnext/commit/560df6330a1b43648a91e3f1514d8ff5dc382c15)), closes [#30838](https://github.com/frappe/erpnext/issues/30838) * Multiple accounting dimension filtering in AR/AP reports ([#34464](https://github.com/frappe/erpnext/issues/34464)) ([f146479](https://github.com/frappe/erpnext/commit/f146479362d3a2b46d720d635db71c37058e1a41)) * Overallocation of 'qty' from Cr Notes to Parent Invoice ([848e56b](https://github.com/frappe/erpnext/commit/848e56bd4ca07ecbb1ea64dd226680c96a17a29c)) * patch depends on Currency Exchange Settings ([#34494](https://github.com/frappe/erpnext/issues/34494)) ([4acde44](https://github.com/frappe/erpnext/commit/4acde4468fa6574dfeb6ca786fe4b8796a5969eb)) * POS not picking up pos profile company address instead fetch any random company address ([#34521](https://github.com/frappe/erpnext/issues/34521)) ([01f4cc7](https://github.com/frappe/erpnext/commit/01f4cc76fc65ae35ec99e0599818b141a2393f2e)) * Update account number from parent company ([#34474](https://github.com/frappe/erpnext/issues/34474)) ([55d002c](https://github.com/frappe/erpnext/commit/55d002c6364622b40a47d5c8e009d99f097174c7)) * use max function to get default company address (backport [#34116](https://github.com/frappe/erpnext/issues/34116)) ([#34452](https://github.com/frappe/erpnext/issues/34452)) ([ba2fd71](https://github.com/frappe/erpnext/commit/ba2fd71b6522b39d1f17fc00c497d1d59ea00e7e)) ### Features * add field `Over Order Allowance (%)` in `Buying Settings` ([da915f1](https://github.com/frappe/erpnext/commit/da915f15103d969c1c6ae2561ae517c68635cdd8)) * add field `Over Order Allowance (%)` in `Selling Settings` ([46b5ba9](https://github.com/frappe/erpnext/commit/46b5ba9c2aa9093115206cdf79831a86194447de)) * bank reconciliation and plaid changes ([#33986](https://github.com/frappe/erpnext/issues/33986)) ([9b608ea](https://github.com/frappe/erpnext/commit/9b608eaa0fcebcb5a8627ec4c14ccfad1057421e)) * consider `over_order_allowance` while validating order qty ([932639b](https://github.com/frappe/erpnext/commit/932639b4df5747593667849695c01b953d02ef01)) * consider `over_order_allowance` while validating sales order qty ([09b577a](https://github.com/frappe/erpnext/commit/09b577a91fd32fdc3f974e8b7a3a85ad1f37d51d)) * Support for Alternative Items in Quotation ([#33874](https://github.com/frappe/erpnext/issues/33874)) ([9f7da21](https://github.com/frappe/erpnext/commit/9f7da21c9333e61bad2eb561ed3de96c8656ab7e)) ### Performance Improvements * index against_sales_invoice field on DN items (backport [#34509](https://github.com/frappe/erpnext/issues/34509)) ([#34510](https://github.com/frappe/erpnext/issues/34510)) ([baa789b](https://github.com/frappe/erpnext/commit/baa789be347d14420b66498cd978c5a8380d6d2a)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index a5f153f52117..63dd69aeca66 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.18.3" +__version__ = "14.19.0" def get_default_company(user=None): From 702d07ea7db1a032ee0f617f642f68e6d63a0f77 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 22:48:38 +0530 Subject: [PATCH 330/355] fix: translations and UX in alternative item mapping (#34433) fix: translations and UX in alternative item mapping (#34433) * fix: disable deletion in alternative item mapping * feat: german translations * fix: make string translatable --------- Co-authored-by: Anand Baburajan Co-authored-by: Deepesh Garg (cherry picked from commit 79911734e914b61c9dd8a4af721d462d3dff20c0) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- erpnext/selling/doctype/quotation/quotation.js | 3 ++- erpnext/translations/de.csv | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js index 81ef44d53ed9..83fa472d68ba 100644 --- a/erpnext/selling/doctype/quotation/quotation.js +++ b/erpnext/selling/doctype/quotation/quotation.js @@ -304,6 +304,7 @@ erpnext.selling.QuotationController = class QuotationController extends erpnext. fieldname: "alternative_items", fieldtype: "Table", cannot_add_rows: true, + cannot_delete_rows: true, in_place_edit: true, reqd: 1, data: this.data, @@ -330,7 +331,7 @@ erpnext.selling.QuotationController = class QuotationController extends erpnext. dialog.fields_dict.info.$wrapper.html( `

- Alternative Items + ${__("Alternative Items")}

` ) dialog.show(); diff --git a/erpnext/translations/de.csv b/erpnext/translations/de.csv index 2aa6dbc0d1c4..3fb637b842f0 100644 --- a/erpnext/translations/de.csv +++ b/erpnext/translations/de.csv @@ -5064,7 +5064,7 @@ Price List Rate (Company Currency),Preisliste (Unternehmenswährung), Rate ,Preis, Rate (Company Currency),Preis (Unternehmenswährung), Amount (Company Currency),Betrag (Unternehmenswährung), -Is Free Item,Ist freies Einzelteil, +Is Free Item,Ist kostenlos, Net Rate,Nettopreis, Net Rate (Company Currency),Nettopreis (Unternehmenswährung), Net Amount (Company Currency),Nettobetrag (Unternehmenswährung), @@ -9915,3 +9915,7 @@ Delivered at Place Unloaded,Geliefert benannter Ort entladen, Delivered Duty Paid,Geliefert verzollt, Discount Validity,Frist für den Rabatt, Discount Validity Based On,Frist für den Rabatt berechnet sich nach, +Select Alternative Items for Sales Order,Alternativpositionen für Auftragsbestätigung auswählen, +Select an item from each set to be used in the Sales Order.,"Wählen Sie aus den Alternativen jeweils einen Artikel aus, der in die Auftragsbestätigung übernommen werden soll.", +Is Alternative,Ist Alternative, +Alternative Items,Alternativpositionen, From 096e5ef19766e032428afd2566817c90e694a16b Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Wed, 22 Mar 2023 11:28:58 +0530 Subject: [PATCH 331/355] fix: Note username overlapping with note content(CRM) (cherry picked from commit 76cea7dd6af93bc849762fc5c9775481ecb6486b) --- erpnext/public/js/templates/crm_notes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/public/js/templates/crm_notes.html b/erpnext/public/js/templates/crm_notes.html index fddeb1c1cc2f..53df93307840 100644 --- a/erpnext/public/js/templates/crm_notes.html +++ b/erpnext/public/js/templates/crm_notes.html @@ -17,7 +17,7 @@ {{ frappe.avatar(notes[i].added_by) }}
-
+
{{ strip_html(notes[i].added_by) }}
From 881e92e7b363e6790d3260da11822ccdb5949d2f Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 23 Mar 2023 00:06:14 +0530 Subject: [PATCH 332/355] fix: remove unused translation (#34519) * fix: remove unused translation (#34519) (cherry picked from commit 0df3a1a3af098da30d5197e22cbd7cb631dc567e) # Conflicts: # erpnext/translations/tr.csv * chore: resolve conflicts --------- Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- erpnext/translations/af.csv | 1 - erpnext/translations/am.csv | 1 - erpnext/translations/ar.csv | 1 - erpnext/translations/bg.csv | 1 - erpnext/translations/bn.csv | 1 - erpnext/translations/bs.csv | 1 - erpnext/translations/ca.csv | 1 - erpnext/translations/cs.csv | 1 - erpnext/translations/da.csv | 1 - erpnext/translations/de.csv | 1 - erpnext/translations/el.csv | 1 - erpnext/translations/es.csv | 1 - erpnext/translations/et.csv | 1 - erpnext/translations/fa.csv | 1 - erpnext/translations/fi.csv | 1 - erpnext/translations/fr.csv | 1 - erpnext/translations/gu.csv | 1 - erpnext/translations/he.csv | 1 - erpnext/translations/hi.csv | 1 - erpnext/translations/hr.csv | 1 - erpnext/translations/hu.csv | 1 - erpnext/translations/id.csv | 1 - erpnext/translations/is.csv | 1 - erpnext/translations/it.csv | 1 - erpnext/translations/ja.csv | 1 - erpnext/translations/km.csv | 1 - erpnext/translations/kn.csv | 1 - erpnext/translations/ko.csv | 1 - erpnext/translations/ku.csv | 1 - erpnext/translations/lo.csv | 1 - erpnext/translations/lt.csv | 1 - erpnext/translations/lv.csv | 1 - erpnext/translations/mk.csv | 1 - erpnext/translations/ml.csv | 1 - erpnext/translations/mr.csv | 1 - erpnext/translations/ms.csv | 1 - erpnext/translations/my.csv | 1 - erpnext/translations/nl.csv | 1 - erpnext/translations/no.csv | 1 - erpnext/translations/pl.csv | 1 - erpnext/translations/ps.csv | 1 - erpnext/translations/pt-BR.csv | 1 - erpnext/translations/pt.csv | 1 - erpnext/translations/ro.csv | 1 - erpnext/translations/ru.csv | 1 - erpnext/translations/rw.csv | 1 - erpnext/translations/si.csv | 1 - erpnext/translations/sk.csv | 1 - erpnext/translations/sl.csv | 1 - erpnext/translations/sq.csv | 1 - erpnext/translations/sr.csv | 1 - erpnext/translations/sv.csv | 1 - erpnext/translations/sw.csv | 1 - erpnext/translations/ta.csv | 1 - erpnext/translations/te.csv | 1 - erpnext/translations/th.csv | 1 - erpnext/translations/tr.csv | 1 - erpnext/translations/uk.csv | 1 - erpnext/translations/ur.csv | 1 - erpnext/translations/uz.csv | 1 - erpnext/translations/vi.csv | 1 - erpnext/translations/zh.csv | 1 - erpnext/translations/zh_tw.csv | 1 - 63 files changed, 63 deletions(-) diff --git a/erpnext/translations/af.csv b/erpnext/translations/af.csv index 265e85c0f1d9..f2458e3c9658 100644 --- a/erpnext/translations/af.csv +++ b/erpnext/translations/af.csv @@ -3505,7 +3505,6 @@ Recipient,ontvanger, Reviews,resensies, Sender,sender, Shop,Winkel, -Sign Up,Teken aan, Subsidiary,filiaal, There is some problem with the file url: {0},Daar is 'n probleem met die lêer url: {0}, There were errors while sending email. Please try again.,Daar was foute tydens die stuur van e-pos. Probeer asseblief weer., diff --git a/erpnext/translations/am.csv b/erpnext/translations/am.csv index d13140482130..d4db28586716 100644 --- a/erpnext/translations/am.csv +++ b/erpnext/translations/am.csv @@ -3505,7 +3505,6 @@ Recipient,ተቀባይ, Reviews,ግምገማዎች, Sender,የላኪ, Shop,ሱቅ, -Sign Up,ክፈት, Subsidiary,ተጪማሪ, There is some problem with the file url: {0},ፋይል ዩ አር ኤል ጋር አንድ ችግር አለ: {0}, There were errors while sending email. Please try again.,ኢሜይል በመላክ ላይ ሳለ ስህተቶች ነበሩ. እባክዎ ዳግም ይሞክሩ., diff --git a/erpnext/translations/ar.csv b/erpnext/translations/ar.csv index c0da1c4d76ee..ea2777faf03b 100644 --- a/erpnext/translations/ar.csv +++ b/erpnext/translations/ar.csv @@ -3505,7 +3505,6 @@ Recipient,مستلم, Reviews,التعليقات, Sender,مرسل, Shop,تسوق, -Sign Up,سجل, Subsidiary,شركة فرعية, There is some problem with the file url: {0},هناك بعض المشاكل مع رابط الملف: {0}, There were errors while sending email. Please try again.,كانت هناك أخطاء أثناء إرسال البريد الإلكتروني. يرجى المحاولة مرة أخرى., diff --git a/erpnext/translations/bg.csv b/erpnext/translations/bg.csv index ac6dc7851b22..6839129a319b 100644 --- a/erpnext/translations/bg.csv +++ b/erpnext/translations/bg.csv @@ -3505,7 +3505,6 @@ Recipient,Получател, Reviews,Отзиви, Sender,Подател, Shop,Магазин, -Sign Up,Регистрирай се, Subsidiary,Филиал, There is some problem with the file url: {0},Има някакъв проблем с адреса на файл: {0}, There were errors while sending email. Please try again.,"Имаше грешки при изпращане на имейл. Моля, опитайте отново.", diff --git a/erpnext/translations/bn.csv b/erpnext/translations/bn.csv index 52f7b1c593ae..a944d99ecbf2 100644 --- a/erpnext/translations/bn.csv +++ b/erpnext/translations/bn.csv @@ -3505,7 +3505,6 @@ Recipient,প্রাপক, Reviews,পর্যালোচনা, Sender,প্রেরকের, Shop,দোকান, -Sign Up,নিবন্ধন করুন, Subsidiary,সহায়ক, There is some problem with the file url: {0},ফাইলের URL সঙ্গে কিছু সমস্যা আছে: {0}, There were errors while sending email. Please try again.,ইমেইল পাঠানোর সময় কিছু সমস্যা হয়েছে. অনুগ্রহ করে আবার চেষ্টা করুন., diff --git a/erpnext/translations/bs.csv b/erpnext/translations/bs.csv index 267434f480a7..2d9c26d15b12 100644 --- a/erpnext/translations/bs.csv +++ b/erpnext/translations/bs.csv @@ -3505,7 +3505,6 @@ Recipient,Primalac, Reviews,Recenzije, Sender,Pošiljaoc, Shop,Prodavnica, -Sign Up,Prijaviti se, Subsidiary,Podružnica, There is some problem with the file url: {0},Postoji neki problem sa URL datoteku: {0}, There were errors while sending email. Please try again.,Bilo je grešaka tijekom slanja e-pošte. Molimo pokušajte ponovno ., diff --git a/erpnext/translations/ca.csv b/erpnext/translations/ca.csv index d8c2ef68e6e8..85c62851c8d5 100644 --- a/erpnext/translations/ca.csv +++ b/erpnext/translations/ca.csv @@ -3505,7 +3505,6 @@ Recipient,Receptor, Reviews,Ressenyes, Sender,Remitent, Shop,Botiga, -Sign Up,Registra't, Subsidiary,Filial, There is some problem with the file url: {0},Hi ha una mica de problema amb la url de l'arxiu: {0}, There were errors while sending email. Please try again.,"Hi ha hagut errors a l'enviar el correu electrònic. Si us plau, torna a intentar-ho.", diff --git a/erpnext/translations/cs.csv b/erpnext/translations/cs.csv index 7d570bbdd040..3fb67e787087 100644 --- a/erpnext/translations/cs.csv +++ b/erpnext/translations/cs.csv @@ -3505,7 +3505,6 @@ Recipient,Příjemce, Reviews,Recenze, Sender,Odesilatel, Shop,Obchod, -Sign Up,Přihlásit se, Subsidiary,Dceřiný, There is some problem with the file url: {0},Tam je nějaký problém s URL souboru: {0}, There were errors while sending email. Please try again.,Narazili jsme na problémy při odesílání emailu. Prosím zkuste to znovu., diff --git a/erpnext/translations/da.csv b/erpnext/translations/da.csv index 16b2e878e042..f0654b998da4 100644 --- a/erpnext/translations/da.csv +++ b/erpnext/translations/da.csv @@ -3505,7 +3505,6 @@ Recipient,Modtager, Reviews,Anmeldelser, Sender,Afsender, Shop,Butik, -Sign Up,Tilmelde, Subsidiary,Datterselskab, There is some problem with the file url: {0},Der er nogle problemer med filen url: {0}, There were errors while sending email. Please try again.,Der var fejl under afsendelse af e-mail. Prøv venligst igen., diff --git a/erpnext/translations/de.csv b/erpnext/translations/de.csv index 3fb637b842f0..8472d04f1cac 100644 --- a/erpnext/translations/de.csv +++ b/erpnext/translations/de.csv @@ -3511,7 +3511,6 @@ Recipient,Empfänger, Reviews,Bewertungen, Sender,Absender, Shop,Laden, -Sign Up,Anmelden, Subsidiary,Tochtergesellschaft, There is some problem with the file url: {0},Es gibt irgend ein Problem mit der Datei-URL: {0}, There were errors while sending email. Please try again.,Beim Versand der E-Mail ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut., diff --git a/erpnext/translations/el.csv b/erpnext/translations/el.csv index 06b80603e637..c241558e31c7 100644 --- a/erpnext/translations/el.csv +++ b/erpnext/translations/el.csv @@ -3505,7 +3505,6 @@ Recipient,Παραλήπτης, Reviews,Κριτικές, Sender,Αποστολέας, Shop,Κατάστημα, -Sign Up,Εγγραφείτε, Subsidiary,Θυγατρική, There is some problem with the file url: {0},Υπάρχει κάποιο πρόβλημα με το url αρχείο: {0}, There were errors while sending email. Please try again.,Υπήρξαν σφάλματα κατά την αποστολή ηλεκτρονικού ταχυδρομείου. Παρακαλώ δοκιμάστε ξανά ., diff --git a/erpnext/translations/es.csv b/erpnext/translations/es.csv index b216b868bbdb..9996fe54c15d 100644 --- a/erpnext/translations/es.csv +++ b/erpnext/translations/es.csv @@ -3505,7 +3505,6 @@ Recipient,Beneficiario, Reviews,Comentarios, Sender,Remitente, Shop,Tienda., -Sign Up,Regístrate, Subsidiary,Subsidiaria, There is some problem with the file url: {0},Hay un poco de problema con la url del archivo: {0}, There were errors while sending email. Please try again.,"Ha ocurrido un error al enviar el correo electrónico. Por favor, inténtelo de nuevo.", diff --git a/erpnext/translations/et.csv b/erpnext/translations/et.csv index 5d67d81b7945..6e60809fe7b9 100644 --- a/erpnext/translations/et.csv +++ b/erpnext/translations/et.csv @@ -3505,7 +3505,6 @@ Recipient,Saaja, Reviews,Ülevaated, Sender,Lähetaja, Shop,Kauplus, -Sign Up,Registreeri, Subsidiary,Tütarettevõte, There is some problem with the file url: {0},Seal on mõned probleem faili url: {0}, There were errors while sending email. Please try again.,Vigu samas saates email. Palun proovi uuesti., diff --git a/erpnext/translations/fa.csv b/erpnext/translations/fa.csv index 040034d09ec6..7d18e27ad422 100644 --- a/erpnext/translations/fa.csv +++ b/erpnext/translations/fa.csv @@ -3505,7 +3505,6 @@ Recipient,گیرنده, Reviews,بررسی ها, Sender,فرستنده, Shop,فروشگاه, -Sign Up,ثبت نام, Subsidiary,فرعی, There is some problem with the file url: {0},بعضی از مشکل با آدرس فایل وجود دارد: {0}, There were errors while sending email. Please try again.,بودند خطاهای هنگام ارسال ایمیل وجود دارد. لطفا دوباره تلاش کنید., diff --git a/erpnext/translations/fi.csv b/erpnext/translations/fi.csv index 27ea3b8dd45d..c700f60d15c0 100644 --- a/erpnext/translations/fi.csv +++ b/erpnext/translations/fi.csv @@ -3505,7 +3505,6 @@ Recipient,vastaanottaja, Reviews,Arvostelut, Sender,Lähettäjä, Shop,Osta, -Sign Up,Kirjaudu, Subsidiary,tytäryhtiö, There is some problem with the file url: {0},Tiedosto-URL:issa {0} on ongelma, There were errors while sending email. Please try again.,"Lähetettäessä sähköpostia oli virheitä, yrita uudelleen", diff --git a/erpnext/translations/fr.csv b/erpnext/translations/fr.csv index bace129213d9..ab9bf7d9c147 100644 --- a/erpnext/translations/fr.csv +++ b/erpnext/translations/fr.csv @@ -3505,7 +3505,6 @@ Recipient,Destinataire, Reviews,Avis, Sender,Expéditeur, Shop,Magasin, -Sign Up,S'inscrire, Subsidiary,Filiale, There is some problem with the file url: {0},Il y a un problème avec l'url du fichier : {0}, There were errors while sending email. Please try again.,Il y a eu des erreurs lors de l'envoi d’emails. Veuillez essayer à nouveau., diff --git a/erpnext/translations/gu.csv b/erpnext/translations/gu.csv index 97adac94db16..b26d2f3d0768 100644 --- a/erpnext/translations/gu.csv +++ b/erpnext/translations/gu.csv @@ -3505,7 +3505,6 @@ Recipient,પ્રાપ્તકર્તા, Reviews,સમીક્ષાઓ, Sender,પ્રેષક, Shop,દુકાન, -Sign Up,સાઇન અપ કરો, Subsidiary,સબસિડીયરી, There is some problem with the file url: {0},ફાઈલ URL સાથે કેટલાક સમસ્યા છે: {0}, There were errors while sending email. Please try again.,ઇમેઇલ મોકલતી વખતે ભૂલો આવી હતી. ફરી પ્રયત્ન કરો., diff --git a/erpnext/translations/he.csv b/erpnext/translations/he.csv index 22b252261fd5..e40b68e504f9 100644 --- a/erpnext/translations/he.csv +++ b/erpnext/translations/he.csv @@ -3505,7 +3505,6 @@ Recipient,נמען, Reviews,ביקורות, Sender,שולח, Shop,חנות, -Sign Up,הירשם, Subsidiary,חברת בת, There is some problem with the file url: {0},יש קצת בעיה עם כתובת אתר הקובץ: {0}, There were errors while sending email. Please try again.,היו שגיאות בעת שליחת דואר אלקטרוני. אנא נסה שוב., diff --git a/erpnext/translations/hi.csv b/erpnext/translations/hi.csv index ca41cf3d9f44..78094d735af0 100644 --- a/erpnext/translations/hi.csv +++ b/erpnext/translations/hi.csv @@ -3505,7 +3505,6 @@ Recipient,प्राप्तकर्ता, Reviews,समीक्षा, Sender,प्रेषक, Shop,दुकान, -Sign Up,साइन अप करें, Subsidiary,सहायक, There is some problem with the file url: {0},फ़ाइल यूआरएल के साथ कुछ समस्या है: {0}, There were errors while sending email. Please try again.,ईमेल भेजने के दौरान त्रुटि . पुन: प्रयास करें ., diff --git a/erpnext/translations/hr.csv b/erpnext/translations/hr.csv index 319b80b7c47e..232832f3f97d 100644 --- a/erpnext/translations/hr.csv +++ b/erpnext/translations/hr.csv @@ -3505,7 +3505,6 @@ Recipient,Primalac, Reviews,Recenzije, Sender,Pošiljalac, Shop,Dućan, -Sign Up,Prijavite se, Subsidiary,Podružnica, There is some problem with the file url: {0},Postoji neki problem s datotečnog URL: {0}, There were errors while sending email. Please try again.,Bilo je grešaka tijekom slanja e-pošte. Molimo pokušajte ponovno ., diff --git a/erpnext/translations/hu.csv b/erpnext/translations/hu.csv index 06647281cd60..e3dcd61fb2f5 100644 --- a/erpnext/translations/hu.csv +++ b/erpnext/translations/hu.csv @@ -3505,7 +3505,6 @@ Recipient,Címzett, Reviews,Vélemények, Sender,Küldő, Shop,Bolt, -Sign Up,Regisztrálj, Subsidiary,Leányvállalat, There is some problem with the file url: {0},Van valami probléma a fájl URL-el: {0}, There were errors while sending email. Please try again.,"Email küldés közben hibák voltak. Kérjük, próbálja újra.", diff --git a/erpnext/translations/id.csv b/erpnext/translations/id.csv index 1e507470239c..ccbb002370f3 100644 --- a/erpnext/translations/id.csv +++ b/erpnext/translations/id.csv @@ -3505,7 +3505,6 @@ Recipient,Penerima, Reviews,Ulasan, Sender,Pengirim, Shop,Toko, -Sign Up,Daftar, Subsidiary,Anak Perusahaan, There is some problem with the file url: {0},Ada beberapa masalah dengan url berkas: {0}, There were errors while sending email. Please try again.,Ada kesalahan saat mengirim email. Silakan coba lagi., diff --git a/erpnext/translations/is.csv b/erpnext/translations/is.csv index c20c21eef891..5f11c63abafd 100644 --- a/erpnext/translations/is.csv +++ b/erpnext/translations/is.csv @@ -3505,7 +3505,6 @@ Recipient,viðtakandi, Reviews,Umsagnir, Sender,sendanda, Shop,Shop, -Sign Up,Skráðu þig, Subsidiary,dótturfélag, There is some problem with the file url: {0},Það er einhver vandamál með skrá url: {0}, There were errors while sending email. Please try again.,Það komu upp villur við að senda tölvupóst. Vinsamlegast reyndu aftur., diff --git a/erpnext/translations/it.csv b/erpnext/translations/it.csv index 3d15d5594deb..0dbde45778a7 100644 --- a/erpnext/translations/it.csv +++ b/erpnext/translations/it.csv @@ -3505,7 +3505,6 @@ Recipient,Destinatario, Reviews,Recensioni, Sender,Mittente, Shop,Negozio, -Sign Up,Iscriviti, Subsidiary,Sussidiario, There is some problem with the file url: {0},C'è qualche problema con il file url: {0}, There were errors while sending email. Please try again.,Ci sono stati errori durante l'invio email. Riprova., diff --git a/erpnext/translations/ja.csv b/erpnext/translations/ja.csv index a11a9a126a91..210c78ee5df5 100644 --- a/erpnext/translations/ja.csv +++ b/erpnext/translations/ja.csv @@ -3505,7 +3505,6 @@ Recipient,受信者, Reviews,レビュー, Sender,送信者, Shop,店, -Sign Up,サインアップ, Subsidiary,子会社, There is some problem with the file url: {0},ファイルURLに問題があります:{0}, There were errors while sending email. Please try again.,メールの送信中にエラーが発生しました。もう一度お試しください。, diff --git a/erpnext/translations/km.csv b/erpnext/translations/km.csv index bd70595a7b6d..1eb85cca924e 100644 --- a/erpnext/translations/km.csv +++ b/erpnext/translations/km.csv @@ -3505,7 +3505,6 @@ Recipient,អ្នកទទួល, Reviews,ការពិនិត្យឡើងវិញ។, Sender,អ្នកផ្ញើ, Shop,ហាងលក់, -Sign Up,ចុះឈ្មោះ, Subsidiary,ក្រុមហ៊ុនបុត្រសម្ព័ន្ធ, There is some problem with the file url: {0},មានបញ្ហាមួយចំនួនជាមួយនឹងឯកសារ URL គឺ: {0}, There were errors while sending email. Please try again.,មានកំហុសខណៈពេលដែលការផ្ញើអ៊ីម៉ែលនោះទេ។ សូមព្យាយាមម្តងទៀត។, diff --git a/erpnext/translations/kn.csv b/erpnext/translations/kn.csv index 7572a09a0868..4e40c63e576b 100644 --- a/erpnext/translations/kn.csv +++ b/erpnext/translations/kn.csv @@ -3505,7 +3505,6 @@ Recipient,ಗ್ರಾಹಿ, Reviews,ವಿಮರ್ಶೆಗಳು, Sender,ಪ್ರೇಷಕ, Shop,ಅಂಗಡಿ, -Sign Up,ಸೈನ್ ಅಪ್, Subsidiary,ಸಹಕಾರಿ, There is some problem with the file url: {0},ಕಡತ URL ನೊಂದಿಗೆ ಕೆಲವು ಸಮಸ್ಯೆಯಿದೆ: {0}, There were errors while sending email. Please try again.,ಇಮೇಲ್ ಕಳುಹಿಸುವಾಗ ದೋಷಗಳು ಇದ್ದವು. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ ., diff --git a/erpnext/translations/ko.csv b/erpnext/translations/ko.csv index b873b73b9cd7..36ec3affcec6 100644 --- a/erpnext/translations/ko.csv +++ b/erpnext/translations/ko.csv @@ -3505,7 +3505,6 @@ Recipient,받는 사람, Reviews,리뷰, Sender,보낸 사람, Shop,상점, -Sign Up,가입, Subsidiary,자회사, There is some problem with the file url: {0},파일 URL 몇 가지 문제가 있습니다 : {0}, There were errors while sending email. Please try again.,이메일을 보내는 동안 오류가 발생했습니다.재시도하십시오., diff --git a/erpnext/translations/ku.csv b/erpnext/translations/ku.csv index 89e12c070b5c..28927a08d105 100644 --- a/erpnext/translations/ku.csv +++ b/erpnext/translations/ku.csv @@ -3505,7 +3505,6 @@ Recipient,Girtevan, Reviews,Nirxandin, Sender,virrêkerî, Shop,Dikan, -Sign Up,Tomar kirin, Subsidiary,Şîrketa girêdayî, There is some problem with the file url: {0},e hinek pirsgirêk bi url file hene: {0}, There were errors while sending email. Please try again.,bûn çewtî dema şandina email heye. Ji kerema xwe careke din biceribîne., diff --git a/erpnext/translations/lo.csv b/erpnext/translations/lo.csv index 778a59b3c2e2..3904308af2fd 100644 --- a/erpnext/translations/lo.csv +++ b/erpnext/translations/lo.csv @@ -3505,7 +3505,6 @@ Recipient,ຜູ້ຮັບ, Reviews,ການທົບທວນຄືນ, Sender,ຜູ້ສົ່ງ, Shop,ບໍລິການຜ່ານ, -Sign Up,ລົງທະບຽນ, Subsidiary,ບໍລິສັດຍ່ອຍ, There is some problem with the file url: {0},ມີບັນຫາບາງຢ່າງກັບ url ໄຟລ໌ແມ່ນ: {0}, There were errors while sending email. Please try again.,ມີຄວາມຜິດພາດໃນຂະນະທີ່ການສົ່ງອີເມວໄດ້. ກະລຸນາພະຍາຍາມອີກເທື່ອຫນຶ່ງ., diff --git a/erpnext/translations/lt.csv b/erpnext/translations/lt.csv index 4721ce43ff38..d05688c6537a 100644 --- a/erpnext/translations/lt.csv +++ b/erpnext/translations/lt.csv @@ -3505,7 +3505,6 @@ Recipient,Gavėjas, Reviews,Atsiliepimai, Sender,Siuntėjas, Shop,parduotuvė, -Sign Up,Registruotis, Subsidiary,filialas, There is some problem with the file url: {0},Yra kai kurie su URL failui problema: {0}, There were errors while sending email. Please try again.,"Nebuvo klaidos Nors siunčiant laišką. Prašau, pabandykite dar kartą.", diff --git a/erpnext/translations/lv.csv b/erpnext/translations/lv.csv index b8499b28c127..d5cf852bc6b9 100644 --- a/erpnext/translations/lv.csv +++ b/erpnext/translations/lv.csv @@ -3505,7 +3505,6 @@ Recipient,Saņēmējs, Reviews,Atsauksmes, Sender,Nosūtītājs, Shop,Veikals, -Sign Up,Pierakstīties, Subsidiary,Filiāle, There is some problem with the file url: {0},Ir dažas problēmas ar faila url: {0}, There were errors while sending email. Please try again.,"Bija kļūdas, nosūtot e-pastu. Lūdzu, mēģiniet vēlreiz.", diff --git a/erpnext/translations/mk.csv b/erpnext/translations/mk.csv index 8ecae03adc7e..e01cb70e926d 100644 --- a/erpnext/translations/mk.csv +++ b/erpnext/translations/mk.csv @@ -3505,7 +3505,6 @@ Recipient,Примачот, Reviews,Прегледи, Sender,Испраќачот, Shop,Продавница, -Sign Up,Регистрирај се, Subsidiary,Подружница, There is some problem with the file url: {0},Има некој проблем со URL-то на фајл: {0}, There were errors while sending email. Please try again.,Имаше грешка при испраќање на е-мејл. Ве молиме обидете се повторно., diff --git a/erpnext/translations/ml.csv b/erpnext/translations/ml.csv index f649e6c83b7f..c5a98b6d2560 100644 --- a/erpnext/translations/ml.csv +++ b/erpnext/translations/ml.csv @@ -3505,7 +3505,6 @@ Recipient,സ്വീകർത്താവ്, Reviews,അവലോകനങ്ങൾ, Sender,അയച്ചയാളുടെ, Shop,കട, -Sign Up,സൈൻ അപ്പ് ചെയ്യുക, Subsidiary,സഹായകന്, There is some problem with the file url: {0},ഫയൽ URL ഉള്ള ചില പ്രശ്നം ഉണ്ട്: {0}, There were errors while sending email. Please try again.,ഇമെയിൽ അയയ്ക്കുമ്പോൾ പിശകുകളുണ്ടായിരുന്നു. വീണ്ടും ശ്രമിക്കുക., diff --git a/erpnext/translations/mr.csv b/erpnext/translations/mr.csv index 38effc1b15a5..21aaa3f8bbf9 100644 --- a/erpnext/translations/mr.csv +++ b/erpnext/translations/mr.csv @@ -3505,7 +3505,6 @@ Recipient,प्राप्तकर्ता, Reviews,पुनरावलोकने, Sender,प्रेषक, Shop,दुकान, -Sign Up,साइन अप करा, Subsidiary,उपकंपनी, There is some problem with the file url: {0},फाइल URL सह काही समस्या आहे: {0}, There were errors while sending email. Please try again.,ई-मेल पाठविताना त्रुटी होत्या. कृपया पुन्हा प्रयत्न करा., diff --git a/erpnext/translations/ms.csv b/erpnext/translations/ms.csv index 4ee650b10462..5a3d986f5b58 100644 --- a/erpnext/translations/ms.csv +++ b/erpnext/translations/ms.csv @@ -3505,7 +3505,6 @@ Recipient,Penerima, Reviews,Ulasan, Sender,Penghantar, Shop,Kedai, -Sign Up,Daftar, Subsidiary,Anak Syarikat, There is some problem with the file url: {0},Terdapat beberapa masalah dengan url fail: {0}, There were errors while sending email. Please try again.,Terdapat ralat semasa menghantar e-mel. Sila cuba sekali lagi., diff --git a/erpnext/translations/my.csv b/erpnext/translations/my.csv index f0d216bbc73f..7638e762ba47 100644 --- a/erpnext/translations/my.csv +++ b/erpnext/translations/my.csv @@ -3505,7 +3505,6 @@ Recipient,လက်လံသူ, Reviews,reviews, Sender,ပေးပို့သူ, Shop,ကုန်ဆိုင်, -Sign Up,အကောင့်ဖွင့်ရန်, Subsidiary,ထောက်ခံသောကုမ္ပဏီ, There is some problem with the file url: {0},ဖိုင်ကို url နှင့်အတူအချို့သောပြဿနာကိုလည်းရှိ၏: {0}, There were errors while sending email. Please try again.,အီးမေးလ်ပို့သည့်အနေဖြင့်အမှားများရှိကြ၏။ ထပ်ကြိုးစားပါ။, diff --git a/erpnext/translations/nl.csv b/erpnext/translations/nl.csv index 6ec43a059253..b559c694094b 100644 --- a/erpnext/translations/nl.csv +++ b/erpnext/translations/nl.csv @@ -3505,7 +3505,6 @@ Recipient,Ontvanger, Reviews,beoordelingen, Sender,Afzender, Shop,Winkelen, -Sign Up,Inschrijven, Subsidiary,Dochteronderneming, There is some problem with the file url: {0},Er is een probleem met het bestand url: {0}, There were errors while sending email. Please try again.,Er zijn fouten opgetreden tijdens het versturen van e-mail. Probeer het opnieuw ., diff --git a/erpnext/translations/no.csv b/erpnext/translations/no.csv index df87e81db9ff..20b8916eaf26 100644 --- a/erpnext/translations/no.csv +++ b/erpnext/translations/no.csv @@ -3505,7 +3505,6 @@ Recipient,Mottaker, Reviews,anmeldelser, Sender,Avsender, Shop,Butikk, -Sign Up,Melde deg på, Subsidiary,Datterselskap, There is some problem with the file url: {0},Det er noe problem med filen url: {0}, There were errors while sending email. Please try again.,"Det oppstod feil under sending epost. Vær så snill, prøv på nytt.", diff --git a/erpnext/translations/pl.csv b/erpnext/translations/pl.csv index be81e29d7f17..4a93d4987567 100644 --- a/erpnext/translations/pl.csv +++ b/erpnext/translations/pl.csv @@ -3505,7 +3505,6 @@ Recipient,Adresat, Reviews,Recenzje, Sender,Nadawca, Shop,Sklep, -Sign Up,Zapisz się, Subsidiary,Pomocniczy, There is some problem with the file url: {0},Jest jakiś problem z adresem URL pliku: {0}, There were errors while sending email. Please try again.,Wystąpiły błędy podczas wysyłki e-mail. Proszę spróbuj ponownie., diff --git a/erpnext/translations/ps.csv b/erpnext/translations/ps.csv index 68add60cc93d..26cd0a9cbcb8 100644 --- a/erpnext/translations/ps.csv +++ b/erpnext/translations/ps.csv @@ -3505,7 +3505,6 @@ Recipient,دترلاسه کوونکي, Reviews,بیاکتنې, Sender,استوونکی, Shop,شاپ, -Sign Up,ګډون کول, Subsidiary,د متمم, There is some problem with the file url: {0},شتون سره د دوتنې url ځينو ستونزه دا ده: {0}, There were errors while sending email. Please try again.,ایمیل استولو په داسې حال کې تېروتنې شوې دي. لطفا بیا هڅه وکړې., diff --git a/erpnext/translations/pt-BR.csv b/erpnext/translations/pt-BR.csv index cc1c6af91374..edaaddd6a78f 100644 --- a/erpnext/translations/pt-BR.csv +++ b/erpnext/translations/pt-BR.csv @@ -3505,7 +3505,6 @@ Recipient,Destinatário, Reviews,Revisões, Sender,Remetente, Shop,Loja, -Sign Up,Inscrever-se, Subsidiary,Subsidiário, There is some problem with the file url: {0},Há algum problema com a url do arquivo: {0}, There were errors while sending email. Please try again.,Ocorreram erros durante o envio de email. Por favor tente novamente., diff --git a/erpnext/translations/pt.csv b/erpnext/translations/pt.csv index 43bf227e673e..5cc486d8be2d 100644 --- a/erpnext/translations/pt.csv +++ b/erpnext/translations/pt.csv @@ -3505,7 +3505,6 @@ Recipient,Destinatário, Reviews,Rever, Sender,Remetente, Shop,Loja, -Sign Up,Inscrever-se, Subsidiary,Subsidiário, There is some problem with the file url: {0},Há algum problema com a url do arquivo: {0}, There were errors while sending email. Please try again.,"Ocorreram erros durante o envio de e-mail. Por favor, tente novamente.", diff --git a/erpnext/translations/ro.csv b/erpnext/translations/ro.csv index 3aab431cdd8d..8f97d072021d 100644 --- a/erpnext/translations/ro.csv +++ b/erpnext/translations/ro.csv @@ -3505,7 +3505,6 @@ Recipient,Destinatar, Reviews,opinii, Sender,Expeditor, Shop,Magazin, -Sign Up,Inscrie-te, Subsidiary,Filială, There is some problem with the file url: {0},Există unele probleme cu URL-ul fișierului: {0}, There were errors while sending email. Please try again.,Au fost erori în timp ce trimiterea de e-mail. Încercaţi din nou., diff --git a/erpnext/translations/ru.csv b/erpnext/translations/ru.csv index 662346f2e5dc..1fc37ddedb6b 100644 --- a/erpnext/translations/ru.csv +++ b/erpnext/translations/ru.csv @@ -3503,7 +3503,6 @@ Recipient,Сторона-реципиент, Reviews,Отзывы, Sender,Отправитель, Shop,Магазин, -Sign Up,Регистрация, Subsidiary,Филиал, There is some problem with the file url: {0},Существует некоторая проблема с файловой URL: {0}, There were errors while sending email. Please try again.,"При отправке электронной почты возникли ошибки. Пожалуйста, попробуйте ещё раз.", diff --git a/erpnext/translations/rw.csv b/erpnext/translations/rw.csv index 6c2b5ddb1008..741f11792f0d 100644 --- a/erpnext/translations/rw.csv +++ b/erpnext/translations/rw.csv @@ -3505,7 +3505,6 @@ Recipient,Uwakiriye, Reviews,Isubiramo, Sender,Kohereza, Shop,Amaduka, -Sign Up,Iyandikishe, Subsidiary,Inkunga, There is some problem with the file url: {0},Hano hari ikibazo na dosiye url: {0}, There were errors while sending email. Please try again.,Habayeho amakosa mugihe wohereje imeri. Nyamuneka gerageza., diff --git a/erpnext/translations/si.csv b/erpnext/translations/si.csv index 5b7823589a48..e5ea9bff7b1f 100644 --- a/erpnext/translations/si.csv +++ b/erpnext/translations/si.csv @@ -3505,7 +3505,6 @@ Recipient,පලමු වරට පිරිනැමු, Reviews,සමාලෝචන, Sender,යවන්නාගේ, Shop,වෙළඳසැල්, -Sign Up,ලියාපදිංචි වන්න, Subsidiary,අනුබද්ධිත සමාගමක්, There is some problem with the file url: {0},ගොනුව url එක සමග යම් ගැටළුවක් වේ: {0}, There were errors while sending email. Please try again.,ඊ-තැපැල් යැවීම අතර දෝෂ ඇතිවිය. කරුණාකර නැවත උත්සාහ කරන්න., diff --git a/erpnext/translations/sk.csv b/erpnext/translations/sk.csv index 446e0be58b7e..d16c49201a37 100644 --- a/erpnext/translations/sk.csv +++ b/erpnext/translations/sk.csv @@ -3505,7 +3505,6 @@ Recipient,Príjemca, Reviews,recenzia, Sender,Odosielateľ, Shop,Obchod, -Sign Up,Prihlásiť Se, Subsidiary,Dceřiný, There is some problem with the file url: {0},Tam je nejaký problém s URL súboru: {0}, There were errors while sending email. Please try again.,Narazili jsme na problémy při odesílání emailu. Prosím zkuste to znovu., diff --git a/erpnext/translations/sl.csv b/erpnext/translations/sl.csv index 8b8ed0111472..08901606c4fc 100644 --- a/erpnext/translations/sl.csv +++ b/erpnext/translations/sl.csv @@ -3505,7 +3505,6 @@ Recipient,Prejemnik, Reviews,Ocene, Sender,Sender, Shop,Trgovina, -Sign Up,Prijavite se, Subsidiary,Hčerinska družba, There is some problem with the file url: {0},Obstaja nekaj problem z datoteko url: {0}, There were errors while sending email. Please try again.,Tam so bile napake pri pošiljanju e-pošte. Prosim poskusi znova., diff --git a/erpnext/translations/sq.csv b/erpnext/translations/sq.csv index 6f4f8e013590..987211ab7a85 100644 --- a/erpnext/translations/sq.csv +++ b/erpnext/translations/sq.csv @@ -3505,7 +3505,6 @@ Recipient,Marrës, Reviews,Shqyrtime, Sender,Dërgues, Shop,Dyqan, -Sign Up,Regjistrohuni, Subsidiary,Ndihmës, There is some problem with the file url: {0},Ka disa probleme me file url: {0}, There were errors while sending email. Please try again.,Ka pasur gabime ndërsa dërguar një email. Ju lutemi provoni përsëri., diff --git a/erpnext/translations/sr.csv b/erpnext/translations/sr.csv index 853c6f3cccee..f6cbb57d201d 100644 --- a/erpnext/translations/sr.csv +++ b/erpnext/translations/sr.csv @@ -3505,7 +3505,6 @@ Recipient,Прималац, Reviews,Коментара, Sender,Пошиљалац, Shop,Продавница, -Sign Up,Пријави се, Subsidiary,Подружница, There is some problem with the file url: {0},Постоји неки проблем са Филе УРЛ: {0}, There were errors while sending email. Please try again.,"Были ошибки при отправке электронной почты . Пожалуйста, попробуйте еще раз .", diff --git a/erpnext/translations/sv.csv b/erpnext/translations/sv.csv index 2a4d6b1fbd34..ec443e90be65 100644 --- a/erpnext/translations/sv.csv +++ b/erpnext/translations/sv.csv @@ -3505,7 +3505,6 @@ Recipient,Mottagare, Reviews,recensioner, Sender,Avsändare, Shop,Shop, -Sign Up,Bli Medlem, Subsidiary,Dotterbolag, There is some problem with the file url: {0},Det finns vissa problem med filen url: {0}, There were errors while sending email. Please try again.,Det fanns fel när du skickar e-post. Var god försök igen., diff --git a/erpnext/translations/sw.csv b/erpnext/translations/sw.csv index 234d33e1066d..989f8b06c88c 100644 --- a/erpnext/translations/sw.csv +++ b/erpnext/translations/sw.csv @@ -3505,7 +3505,6 @@ Recipient,Mpokeaji, Reviews,Maoni, Sender,Sender, Shop,Duka, -Sign Up,Ingia, Subsidiary,Msaidizi, There is some problem with the file url: {0},Kuna tatizo fulani na url ya faili: {0}, There were errors while sending email. Please try again.,Kulikuwa na makosa wakati wa kutuma barua pepe. Tafadhali jaribu tena., diff --git a/erpnext/translations/ta.csv b/erpnext/translations/ta.csv index e7384b36efc9..7314d4be513d 100644 --- a/erpnext/translations/ta.csv +++ b/erpnext/translations/ta.csv @@ -3505,7 +3505,6 @@ Recipient,பெறுபவர், Reviews,விமர்சனங்கள், Sender,அனுப்புபவர், Shop,ஷாப்பிங், -Sign Up,பதிவு செய்யவும், Subsidiary,உப, There is some problem with the file url: {0},கோப்பு URL சில சிக்கல் உள்ளது: {0}, There were errors while sending email. Please try again.,மின்னஞ்சல் அனுப்பும் போது பிழைகள் இருந்தன . மீண்டும் முயற்சிக்கவும்., diff --git a/erpnext/translations/te.csv b/erpnext/translations/te.csv index cd14a7731088..3fb32dc093df 100644 --- a/erpnext/translations/te.csv +++ b/erpnext/translations/te.csv @@ -3505,7 +3505,6 @@ Recipient,స్వీకర్త, Reviews,సమీక్షలు, Sender,పంపినవారు, Shop,షాప్, -Sign Up,చేరడం, Subsidiary,అనుబంధ, There is some problem with the file url: {0},ఫైల్ URL కొన్ని సమస్య ఉంది: {0}, There were errors while sending email. Please try again.,ఇమెయిల్ పంపడం అయితే కొన్ని లోపాలు ఉన్నాయి. మళ్ళి ప్రయత్నించండి., diff --git a/erpnext/translations/th.csv b/erpnext/translations/th.csv index 4ab59bc8e1aa..e371aed72844 100644 --- a/erpnext/translations/th.csv +++ b/erpnext/translations/th.csv @@ -3505,7 +3505,6 @@ Recipient,ผู้รับ, Reviews,ความคิดเห็น, Sender,ผู้ส่ง, Shop,ร้านค้า, -Sign Up,ลงชื่อ, Subsidiary,บริษัท สาขา, There is some problem with the file url: {0},มีปัญหากับ url ของไฟล์เป็น: {0}, There were errors while sending email. Please try again.,มีข้อผิดพลาด ในขณะที่ มี การส่งอีเมล์ โปรดลองอีกครั้ง, diff --git a/erpnext/translations/tr.csv b/erpnext/translations/tr.csv index b65494ce32b0..66ea69a1b5b5 100644 --- a/erpnext/translations/tr.csv +++ b/erpnext/translations/tr.csv @@ -3505,7 +3505,6 @@ Recipient,Alıcı, Reviews,yorumlar, Sender,Gönderici, Shop,Mağaza, -Sign Up,Kaydol, Subsidiary,Yardımcı, 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., diff --git a/erpnext/translations/uk.csv b/erpnext/translations/uk.csv index 4e2f63f870e4..83c8d41cb70f 100644 --- a/erpnext/translations/uk.csv +++ b/erpnext/translations/uk.csv @@ -3505,7 +3505,6 @@ Recipient,Одержувач, Reviews,Відгуки, Sender,Відправник, Shop,Магазин, -Sign Up,Зареєструватися, Subsidiary,Дочірня компанія, There is some problem with the file url: {0},Існує деяка проблема з файлової URL: {0}, There were errors while sending email. Please try again.,Були помилки при відправленні електронної пошти. Будь ласка спробуйте ще раз., diff --git a/erpnext/translations/ur.csv b/erpnext/translations/ur.csv index db6518e86b03..8cf0707e3656 100644 --- a/erpnext/translations/ur.csv +++ b/erpnext/translations/ur.csv @@ -3505,7 +3505,6 @@ Recipient,وصول کنندہ, Reviews,جائزہ, Sender,مرسل, Shop,دکان, -Sign Up,سائن اپ, Subsidiary,ماتحت, There is some problem with the file url: {0},فائل URL کے ساتھ کچھ مسئلہ ہے: {0}, There were errors while sending email. Please try again.,ای میل بھیجنے جبکہ غلطیاں تھیں. برائے مہربانی دوبارہ کوشش کریں., diff --git a/erpnext/translations/uz.csv b/erpnext/translations/uz.csv index bb64a15f2b70..1e503769cbd2 100644 --- a/erpnext/translations/uz.csv +++ b/erpnext/translations/uz.csv @@ -3505,7 +3505,6 @@ Recipient,Qabul qiluvchi, Reviews,Sharhlar, Sender,Yuboruvchi, Shop,Do'kon, -Sign Up,Ro'yxatdan o'tish, Subsidiary,Sho'ba korxonasi, There is some problem with the file url: {0},Fayl urlida muammo mavjud: {0}, There were errors while sending email. Please try again.,"E-pochtani yuborishda xatolik yuz berdi. Iltimos, yana bir bor urinib ko'ring.", diff --git a/erpnext/translations/vi.csv b/erpnext/translations/vi.csv index 7317b4b02750..28fecb64271c 100644 --- a/erpnext/translations/vi.csv +++ b/erpnext/translations/vi.csv @@ -3505,7 +3505,6 @@ Recipient,Người nhận, Reviews,Nhận xét, Sender,Người gửi, Shop,Cửa hàng, -Sign Up,Đăng ký, Subsidiary,Công ty con, There is some problem with the file url: {0},Có một số vấn đề với các url của tệp: {0}, There were errors while sending email. Please try again.,Có lỗi khi gửi email. Vui lòng thử lại sau., diff --git a/erpnext/translations/zh.csv b/erpnext/translations/zh.csv index 228ec39ddde7..9ed7420f4630 100644 --- a/erpnext/translations/zh.csv +++ b/erpnext/translations/zh.csv @@ -3505,7 +3505,6 @@ Recipient,收件人, Reviews,评测, Sender,发件人, Shop,商店, -Sign Up,注册, Subsidiary,子机构, There is some problem with the file url: {0},有一些问题与文件的URL:{0}, There were errors while sending email. Please try again.,邮件发送曾发生错误,请重试。, diff --git a/erpnext/translations/zh_tw.csv b/erpnext/translations/zh_tw.csv index 1b7e18637d33..ef4967056773 100644 --- a/erpnext/translations/zh_tw.csv +++ b/erpnext/translations/zh_tw.csv @@ -3282,7 +3282,6 @@ Recipient,接受者, Reviews,評測, Sender,寄件人, Shop,店, -Sign Up,註冊, Subsidiary,副, There is some problem with the file url: {0},有一些問題與文件的URL:{0}, There were errors while sending email. Please try again.,還有在發送電子郵件是錯誤的。請再試一次。, From db01bf5dec74a190452b1c5a95fa59eba4db5c82 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 23 Mar 2023 12:58:32 +0530 Subject: [PATCH 333/355] fix: unset address and contact on trash (backport #34495) (#34560) fix: unset address and contact on trash (#34495) * fix(Customer): unset address and contact on trash * fix(Supplier): unset address and contact on trash --------- Co-authored-by: Sagar Sharma (cherry picked from commit f7bf1b8a0c3327a75d24b35db2abb438edf4a2c4) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- erpnext/buying/doctype/supplier/supplier.py | 15 +++------------ erpnext/selling/doctype/customer/customer.py | 15 +++------------ 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/erpnext/buying/doctype/supplier/supplier.py b/erpnext/buying/doctype/supplier/supplier.py index bebff1c3acbb..c96519a91538 100644 --- a/erpnext/buying/doctype/supplier/supplier.py +++ b/erpnext/buying/doctype/supplier/supplier.py @@ -128,18 +128,9 @@ def create_primary_address(self): def on_trash(self): if self.supplier_primary_contact: - frappe.db.sql( - """ - UPDATE `tabSupplier` - SET - supplier_primary_contact=null, - supplier_primary_address=null, - mobile_no=null, - email_id=null, - primary_address=null - WHERE name=%(name)s""", - {"name": self.name}, - ) + self.db_set("supplier_primary_contact", None) + if self.supplier_primary_address: + self.db_set("supplier_primary_address", None) delete_contact_and_address("Supplier", self.name) diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py index 146ebbd7dfe8..0abbbcf0fc67 100644 --- a/erpnext/selling/doctype/customer/customer.py +++ b/erpnext/selling/doctype/customer/customer.py @@ -275,18 +275,9 @@ def validate_credit_limit_on_change(self): def on_trash(self): if self.customer_primary_contact: - frappe.db.sql( - """ - UPDATE `tabCustomer` - SET - customer_primary_contact=null, - customer_primary_address=null, - mobile_no=null, - email_id=null, - primary_address=null - WHERE name=%(name)s""", - {"name": self.name}, - ) + self.db_set("customer_primary_contact", None) + if self.customer_primary_address: + self.db_set("customer_primary_address", None) delete_contact_and_address("Customer", self.name) if self.lead_name: From d2ca6f8d1f36443635d50c27b3134daca494e33e Mon Sep 17 00:00:00 2001 From: Anand Baburajan Date: Thu, 23 Mar 2023 21:08:59 +0530 Subject: [PATCH 334/355] fix: recalculate WDV rate after asset repair [v14] (#34571) fix: recalculate wdv rate after asset repair --- erpnext/assets/doctype/asset/asset.py | 32 +++++++++++-------- .../doctype/asset_repair/asset_repair.py | 24 -------------- 2 files changed, 18 insertions(+), 38 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index ee73729da0a9..47b5f75e6686 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -375,19 +375,12 @@ def _make_depreciation_schedule(self, finance_book, start, date_of_disposal): value_after_depreciation -= flt(depreciation_amount, self.precision("gross_purchase_amount")) # Adjust depreciation amount in the last period based on the expected value after useful life - if ( - finance_book.expected_value_after_useful_life - and ( - ( - n == cint(number_of_pending_depreciations) - 1 - and value_after_depreciation != finance_book.expected_value_after_useful_life - ) - or value_after_depreciation < finance_book.expected_value_after_useful_life - ) - and ( - not self.flags.increase_in_asset_value_due_to_repair - or not finance_book.depreciation_method in ("Written Down Value", "Double Declining Balance") + if finance_book.expected_value_after_useful_life and ( + ( + n == cint(number_of_pending_depreciations) - 1 + and value_after_depreciation != finance_book.expected_value_after_useful_life ) + or value_after_depreciation < finance_book.expected_value_after_useful_life ): depreciation_amount += value_after_depreciation - finance_book.expected_value_after_useful_life skip_row = True @@ -913,11 +906,22 @@ def get_depreciation_rate(self, args, on_validate=False): return 200.0 / args.get("total_number_of_depreciations") if args.get("depreciation_method") == "Written Down Value": - if args.get("rate_of_depreciation") and on_validate: + if ( + args.get("rate_of_depreciation") + and on_validate + and not self.flags.increase_in_asset_value_due_to_repair + ): return args.get("rate_of_depreciation") - value = flt(args.get("expected_value_after_useful_life")) / flt(self.gross_purchase_amount) + if self.flags.increase_in_asset_value_due_to_repair: + value = flt(args.get("expected_value_after_useful_life")) / flt( + args.get("value_after_depreciation") + ) + else: + value = flt(args.get("expected_value_after_useful_life")) / flt(self.gross_purchase_amount) + depreciation_rate = math.pow(value, 1.0 / flt(args.get("total_number_of_depreciations"), 2)) + return flt((100 * (1 - depreciation_rate)), float_precision) def get_pro_rata_amt(self, row, depreciation_amount, from_date, to_date): diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py index eec7ccba7545..47453e303086 100644 --- a/erpnext/assets/doctype/asset_repair/asset_repair.py +++ b/erpnext/assets/doctype/asset_repair/asset_repair.py @@ -56,8 +56,6 @@ def before_submit(self): self.asset_doc.flags.ignore_validate_update_after_submit = True self.asset_doc.prepare_depreciation_data() - if self.asset_doc.calculate_depreciation: - self.update_asset_expected_value_after_useful_life() self.asset_doc.save() def before_cancel(self): @@ -81,8 +79,6 @@ def before_cancel(self): self.asset_doc.flags.ignore_validate_update_after_submit = True self.asset_doc.prepare_depreciation_data() - if self.asset_doc.calculate_depreciation: - self.update_asset_expected_value_after_useful_life() self.asset_doc.save() def after_delete(self): @@ -103,26 +99,6 @@ def check_for_stock_items_and_warehouse(self): title=_("Missing Warehouse"), ) - def update_asset_expected_value_after_useful_life(self): - for row in self.asset_doc.get("finance_books"): - if row.depreciation_method in ("Written Down Value", "Double Declining Balance"): - accumulated_depreciation_after_full_schedule = [ - d.accumulated_depreciation_amount - for d in self.asset_doc.get("schedules") - if cint(d.finance_book_id) == row.idx - ] - - accumulated_depreciation_after_full_schedule = max( - accumulated_depreciation_after_full_schedule - ) - - asset_value_after_full_schedule = flt( - flt(row.value_after_depreciation) - flt(accumulated_depreciation_after_full_schedule), - row.precision("expected_value_after_useful_life"), - ) - - row.expected_value_after_useful_life = asset_value_after_full_schedule - def increase_asset_value(self): total_value_of_stock_consumed = self.get_total_value_of_stock_consumed() From 90ddc4a1e2ff277ef676650c899bc2c172bdbcf5 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 23 Mar 2023 21:49:13 +0530 Subject: [PATCH 335/355] fix: Sales person variance report without item group (#34552) fix: Sales person variance report without item group (#34552) fix: Sales person variance report witout item group (cherry picked from commit 87108be11ae2bb1c99d961696e52df153d765291) Co-authored-by: Deepesh Garg --- .../item_group_wise_sales_target_variance.py | 38 +++++++++++++------ ...son_target_variance_based_on_item_group.py | 2 - 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/erpnext/selling/report/sales_partner_target_variance_based_on_item_group/item_group_wise_sales_target_variance.py b/erpnext/selling/report/sales_partner_target_variance_based_on_item_group/item_group_wise_sales_target_variance.py index f34f3e34e2ce..7d28f2b90d22 100644 --- a/erpnext/selling/report/sales_partner_target_variance_based_on_item_group/item_group_wise_sales_target_variance.py +++ b/erpnext/selling/report/sales_partner_target_variance_based_on_item_group/item_group_wise_sales_target_variance.py @@ -44,20 +44,30 @@ def get_data(filters, period_list, partner_doctype): if not sales_users_data: return - sales_users, item_groups = [], [] + sales_users = [] + sales_user_wise_item_groups = {} for d in sales_users_data: if d.parent not in sales_users: sales_users.append(d.parent) - if d.item_group not in item_groups: - item_groups.append(d.item_group) + sales_user_wise_item_groups.setdefault(d.parent, []) + if d.item_group: + sales_user_wise_item_groups[d.parent].append(d.item_group) date_field = "transaction_date" if filters.get("doctype") == "Sales Order" else "posting_date" - actual_data = get_actual_data(filters, item_groups, sales_users, date_field, sales_field) + actual_data = get_actual_data(filters, sales_users, date_field, sales_field) - return prepare_data(filters, sales_users_data, actual_data, date_field, period_list, sales_field) + return prepare_data( + filters, + sales_users_data, + sales_user_wise_item_groups, + actual_data, + date_field, + period_list, + sales_field, + ) def get_columns(filters, period_list, partner_doctype): @@ -142,7 +152,15 @@ def get_columns(filters, period_list, partner_doctype): return columns -def prepare_data(filters, sales_users_data, actual_data, date_field, period_list, sales_field): +def prepare_data( + filters, + sales_users_data, + sales_user_wise_item_groups, + actual_data, + date_field, + period_list, + sales_field, +): rows = {} target_qty_amt_field = "target_qty" if filters.get("target_on") == "Quantity" else "target_amount" @@ -173,9 +191,9 @@ def prepare_data(filters, sales_users_data, actual_data, date_field, period_list for r in actual_data: if ( r.get(sales_field) == d.parent - and r.item_group == d.item_group and period.from_date <= r.get(date_field) and r.get(date_field) <= period.to_date + and (not sales_user_wise_item_groups.get(d.parent) or r.item_group == d.item_group) ): details[p_key] += r.get(qty_or_amount_field, 0) details[variance_key] = details.get(p_key) - details.get(target_key) @@ -186,7 +204,7 @@ def prepare_data(filters, sales_users_data, actual_data, date_field, period_list return rows -def get_actual_data(filters, item_groups, sales_users_or_territory_data, date_field, sales_field): +def get_actual_data(filters, sales_users_or_territory_data, date_field, sales_field): fiscal_year = get_fiscal_year(fiscal_year=filters.get("fiscal_year"), as_dict=1) dates = [fiscal_year.year_start_date, fiscal_year.year_end_date] @@ -213,7 +231,6 @@ def get_actual_data(filters, item_groups, sales_users_or_territory_data, date_fi WHERE `tab{child_doc}`.parent = `tab{parent_doc}`.name and `tab{parent_doc}`.docstatus = 1 and {cond} - and `tab{child_doc}`.item_group in ({item_groups}) and `tab{parent_doc}`.{date_field} between %s and %s""".format( cond=cond, date_field=date_field, @@ -221,9 +238,8 @@ def get_actual_data(filters, item_groups, sales_users_or_territory_data, date_fi child_table=child_table, parent_doc=filters.get("doctype"), child_doc=filters.get("doctype") + " Item", - item_groups=",".join(["%s"] * len(item_groups)), ), - tuple(sales_users_or_territory_data + item_groups + dates), + tuple(sales_users_or_territory_data + dates), as_dict=1, ) diff --git a/erpnext/selling/report/sales_person_target_variance_based_on_item_group/sales_person_target_variance_based_on_item_group.py b/erpnext/selling/report/sales_person_target_variance_based_on_item_group/sales_person_target_variance_based_on_item_group.py index dda24662bb23..820712234a59 100644 --- a/erpnext/selling/report/sales_person_target_variance_based_on_item_group/sales_person_target_variance_based_on_item_group.py +++ b/erpnext/selling/report/sales_person_target_variance_based_on_item_group/sales_person_target_variance_based_on_item_group.py @@ -8,6 +8,4 @@ def execute(filters=None): - data = [] - return get_data_column(filters, "Sales Person") From 8fed33b03bc1d609526e0506eb17612f21b466b0 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 23 Mar 2023 22:32:11 +0530 Subject: [PATCH 336/355] fix: Time button not working in the job card (cherry picked from commit 34c190b7d6ef177e5dcda9eb9f603cf3d9e970b8) --- erpnext/manufacturing/doctype/job_card/job_card.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/manufacturing/doctype/job_card/job_card.js b/erpnext/manufacturing/doctype/job_card/job_card.js index 619e6bd1a00d..5305db318b19 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.js +++ b/erpnext/manufacturing/doctype/job_card/job_card.js @@ -83,7 +83,7 @@ frappe.ui.form.on('Job Card', { // and if stock mvt for WIP is required if (frm.doc.work_order) { frappe.db.get_value('Work Order', frm.doc.work_order, ['skip_transfer', 'status'], (result) => { - if (result.skip_transfer === 1 || result.status == 'In Process') { + if (result.skip_transfer === 1 || result.status == 'In Process' || frm.doc.transferred_qty > 0) { frm.trigger("prepare_timer_buttons"); } }); From 57ecac4aa70c8203981a05be8f2368cfbf1ce12a Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Fri, 24 Mar 2023 12:25:03 +0530 Subject: [PATCH 337/355] refactor: additional filters and columns in Payment Ledger report (#34577) 1. 'Party type' and 'Party' filters have been added 2. checkbox to include Amount in Acccount Currency 3. Grouping vouchers on Party 4. Replaced Company with Posting Date (cherry picked from commit f7780cdb58d6678dc4b9ac45a6ab7f0cbd43a3e7) --- .../report/payment_ledger/payment_ledger.js | 37 +++++++++++ .../report/payment_ledger/payment_ledger.py | 64 +++++++++++-------- 2 files changed, 73 insertions(+), 28 deletions(-) diff --git a/erpnext/accounts/report/payment_ledger/payment_ledger.js b/erpnext/accounts/report/payment_ledger/payment_ledger.js index 9779844dc945..a5a4108f1df9 100644 --- a/erpnext/accounts/report/payment_ledger/payment_ledger.js +++ b/erpnext/accounts/report/payment_ledger/payment_ledger.js @@ -37,6 +37,29 @@ function get_filters() { }); } }, + { + "fieldname":"party_type", + "label": __("Party Type"), + "fieldtype": "Link", + "options": "Party Type", + "default": "", + on_change: function() { + frappe.query_report.set_filter_value('party', ""); + } + }, + { + "fieldname":"party", + "label": __("Party"), + "fieldtype": "MultiSelectList", + get_data: function(txt) { + if (!frappe.query_report.filters) return; + + let party_type = frappe.query_report.get_filter_value('party_type'); + if (!party_type) return; + + return frappe.db.get_link_options(party_type, txt); + }, + }, { "fieldname":"voucher_no", "label": __("Voucher No"), @@ -49,6 +72,20 @@ function get_filters() { "fieldtype": "Data", "width": 100, }, + { + "fieldname":"include_account_currency", + "label": __("Include Account Currency"), + "fieldtype": "Check", + "width": 100, + }, + { + "fieldname":"group_party", + "label": __("Group by Party"), + "fieldtype": "Check", + "width": 100, + }, + + ] return filters; diff --git a/erpnext/accounts/report/payment_ledger/payment_ledger.py b/erpnext/accounts/report/payment_ledger/payment_ledger.py index e470c2727e38..8875d2743fe2 100644 --- a/erpnext/accounts/report/payment_ledger/payment_ledger.py +++ b/erpnext/accounts/report/payment_ledger/payment_ledger.py @@ -17,34 +17,26 @@ def __init__(self, filters=None): self.ple = qb.DocType("Payment Ledger Entry") def init_voucher_dict(self): - if self.voucher_amount: - s = set() - # build a set of unique vouchers + # for each ple, using group_by_key to create a key and assign it to +/- list for ple in self.voucher_amount: - key = (ple.voucher_type, ple.voucher_no, ple.party) - s.add(key) - - # for each unique vouchers, initialize +/- list - for key in s: - self.voucher_dict[key] = frappe._dict(increase=list(), decrease=list()) + group_by_key = None + if not self.filters.group_party: + group_by_key = (ple.against_voucher_type, ple.against_voucher_no, ple.party) + else: + group_by_key = (ple.party_type, ple.party) - # for each ple, using against voucher and amount, assign it to +/- list - # group by against voucher - for ple in self.voucher_amount: - against_key = (ple.against_voucher_type, ple.against_voucher_no, ple.party) target = None - if self.voucher_dict.get(against_key): - if ple.amount > 0: - target = self.voucher_dict.get(against_key).increase - else: - target = self.voucher_dict.get(against_key).decrease + if ple.amount > 0: + target = self.voucher_dict.setdefault(group_by_key, {}).setdefault("increase", []) + else: + target = self.voucher_dict.setdefault(group_by_key, {}).setdefault("decrease", []) # this if condition will lose unassigned ple entries(against_voucher doc doesn't have ple) # need to somehow include the stray entries as well. if target is not None: entry = frappe._dict( - company=ple.company, + posting_date=ple.posting_date, account=ple.account, party_type=ple.party_type, party=ple.party, @@ -66,10 +58,10 @@ def build_data(self): for value in self.voucher_dict.values(): voucher_data = [] - if value.increase != []: - voucher_data.extend(value.increase) - if value.decrease != []: - voucher_data.extend(value.decrease) + if value.get("increase"): + voucher_data.extend(value.get("increase")) + if value.get("decrease"): + voucher_data.extend(value.get("decrease")) if voucher_data: # balance row @@ -117,6 +109,12 @@ def build_conditions(self): if self.filters.against_voucher_no: self.conditions.append(self.ple.against_voucher_no == self.filters.against_voucher_no) + if self.filters.party_type: + self.conditions.append(self.ple.party_type == self.filters.party_type) + + if self.filters.party: + self.conditions.append(self.ple.party.isin(self.filters.party)) + def get_data(self): ple = self.ple @@ -134,7 +132,13 @@ def get_data(self): def get_columns(self): options = None self.columns.append( - dict(label=_("Company"), fieldname="company", fieldtype="data", options=options, width="100") + dict( + label=_("Posting Date"), + fieldname="posting_date", + fieldtype="Date", + options=options, + width="100", + ) ) self.columns.append( @@ -160,7 +164,11 @@ def get_columns(self): ) self.columns.append( dict( - label=_("Voucher No"), fieldname="voucher_no", fieldtype="data", options=options, width="100" + label=_("Voucher No"), + fieldname="voucher_no", + fieldtype="Dynamic Link", + options="voucher_type", + width="100", ) ) self.columns.append( @@ -176,8 +184,8 @@ def get_columns(self): dict( label=_("Against Voucher No"), fieldname="against_voucher_no", - fieldtype="data", - options=options, + fieldtype="Dynamic Link", + options="against_voucher_type", width="100", ) ) @@ -209,7 +217,7 @@ def run(self): self.get_columns() self.get_data() - # initialize dictionary and group using against voucher + # initialize dictionary and group using key self.init_voucher_dict() # convert dictionary to list and add balance rows From 67576ad5bdc78aa8ef79b6bf915df2ba87b9e21f Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 24 Mar 2023 15:14:25 +0530 Subject: [PATCH 338/355] feat: deprecate get_customer_list (#34563) feat: deprecate get_customer_list (#34563) (cherry picked from commit 8c7fa5712b303798e4d41c229c4b1b0c476897ef) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- erpnext/hooks.py | 2 +- erpnext/selling/doctype/customer/customer.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/erpnext/hooks.py b/erpnext/hooks.py index e24038d0c6e2..f1ee370e97ee 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -276,7 +276,7 @@ before_tests = "erpnext.setup.utils.before_tests" standard_queries = { - "Customer": "erpnext.selling.doctype.customer.customer.get_customer_list", + "Customer": "erpnext.controllers.queries.customer_query", } doc_events = { diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py index 0abbbcf0fc67..a8665c5d0404 100644 --- a/erpnext/selling/doctype/customer/customer.py +++ b/erpnext/selling/doctype/customer/customer.py @@ -451,8 +451,14 @@ def get_nested_links(link_doctype, link_name, ignore_permissions=False): @frappe.whitelist() @frappe.validate_and_sanitize_search_inputs def get_customer_list(doctype, txt, searchfield, start, page_len, filters=None): + from frappe.utils.deprecations import deprecation_warning + from erpnext.controllers.queries import get_fields + deprecation_warning( + "`get_customer_list` is deprecated and will be removed in version 15. Use `erpnext.controllers.queries.customer_query` instead." + ) + fields = ["name", "customer_name", "customer_group", "territory"] if frappe.db.get_default("cust_master_name") == "Customer Name": From 18d813a6561ddc63f6b880d89d0a3b6b2969e786 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 24 Mar 2023 15:14:52 +0530 Subject: [PATCH 339/355] fix: default pos conversion factor set to 1 (#34437) * fix: default pos conversion factor set to 1 (#34437) (cherry picked from commit 08fc686513bf4c6e4980d16a8a67cab731be1fd1) # Conflicts: # erpnext/selling/page/point_of_sale/point_of_sale.py * chore: Resolve conflicts --------- Co-authored-by: Shram Kadia <65490105+Shram007@users.noreply.github.com> Co-authored-by: Deepesh Garg --- .../page/point_of_sale/point_of_sale.py | 96 ++++++++++++------- 1 file changed, 61 insertions(+), 35 deletions(-) diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.py b/erpnext/selling/page/point_of_sale/point_of_sale.py index 5ddebf96f6cf..6ccf45f476cb 100644 --- a/erpnext/selling/page/point_of_sale/point_of_sale.py +++ b/erpnext/selling/page/point_of_sale/point_of_sale.py @@ -16,46 +16,72 @@ def search_by_term(search_term, warehouse, price_list): result = search_for_serial_or_batch_or_barcode_number(search_term) or {} + item_code = result.get("item_code", search_term) + serial_no = result.get("serial_no", "") + batch_no = result.get("batch_no", "") + barcode = result.get("barcode", "") + if not result: + return + item_doc = frappe.get_doc("Item", item_code) + if not item_doc: + return + item = { + "barcode": barcode, + "batch_no": batch_no, + "description": item_doc.description, + "is_stock_item": item_doc.is_stock_item, + "item_code": item_doc.name, + "item_image": item_doc.image, + "item_name": item_doc.item_name, + "serial_no": serial_no, + "stock_uom": item_doc.stock_uom, + "uom": item_doc.stock_uom, + } + if barcode: + barcode_info = next(filter(lambda x: x.barcode == barcode, item_doc.get("barcodes", [])), None) + if barcode_info and barcode_info.uom: + uom = next(filter(lambda x: x.uom == barcode_info.uom, item_doc.uoms), {}) + item.update( + { + "uom": barcode_info.uom, + "conversion_factor": uom.get("conversion_factor", 1), + } + ) - item_code = result.get("item_code") or search_term - serial_no = result.get("serial_no") or "" - batch_no = result.get("batch_no") or "" - barcode = result.get("barcode") or "" - - if result: - item_info = frappe.db.get_value( - "Item", - item_code, - [ - "name as item_code", - "item_name", - "description", - "stock_uom", - "image as item_image", - "is_stock_item", - ], - as_dict=1, - ) - - item_stock_qty, is_stock_item = get_stock_availability(item_code, warehouse) - price_list_rate, currency = frappe.db.get_value( - "Item Price", - {"price_list": price_list, "item_code": item_code}, - ["price_list_rate", "currency"], - ) or [None, None] + item_stock_qty, is_stock_item = get_stock_availability(item_code, warehouse) + item_stock_qty = item_stock_qty // item.get("conversion_factor") + item_stock_qty = item_stock_qty // item.get("conversion_factor", 1) + item.update({"actual_qty": item_stock_qty}) + + price = frappe.get_list( + doctype="Item Price", + filters={ + "price_list": price_list, + "item_code": item_code, + }, + fields=["uom", "stock_uom", "currency", "price_list_rate"], + ) - item_info.update( + def __sort(p): + p_uom = p.get("uom") + if p_uom == item.get("uom"): + return 0 + elif p_uom == item.get("stock_uom"): + return 1 + else: + return 2 + + # sort by fallback preference. always pick exact uom match if available + price = sorted(price, key=__sort) + if len(price) > 0: + p = price.pop(0) + item.update( { - "serial_no": serial_no, - "batch_no": batch_no, - "barcode": barcode, - "price_list_rate": price_list_rate, - "currency": currency, - "actual_qty": item_stock_qty, + "currency": p.get("currency"), + "price_list_rate": p.get("price_list_rate"), } ) - - return {"items": [item_info]} + return {"items": [item]} @frappe.whitelist() From 835edbe80e76ca03dfddeeb6d656ad4b5eeee1d6 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 28 Mar 2023 16:48:53 +0530 Subject: [PATCH 340/355] fix: Party Name in SOA print when viewed from Customer/Supplier master (#34597) fix: Party Name in SOA print when viewed from Customer/Supplier master (#34597) fix: Party Name in SOA print when viewd from Customer/Supplier master (cherry picked from commit 50c1172f29ac695ebb9b86f4947fb580380b58a6) Co-authored-by: Deepesh Garg --- erpnext/accounts/report/general_ledger/general_ledger.js | 5 ++--- erpnext/buying/doctype/supplier/supplier.js | 2 +- erpnext/selling/doctype/customer/customer.js | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/erpnext/accounts/report/general_ledger/general_ledger.js b/erpnext/accounts/report/general_ledger/general_ledger.js index 010284c2ea55..2100f26c1ec8 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.js +++ b/erpnext/accounts/report/general_ledger/general_ledger.js @@ -58,9 +58,8 @@ frappe.query_reports["General Ledger"] = { { "fieldname":"party_type", "label": __("Party Type"), - "fieldtype": "Link", - "options": "Party Type", - "default": "", + "fieldtype": "Autocomplete", + options: Object.keys(frappe.boot.party_account_types), on_change: function() { frappe.query_report.set_filter_value('party', ""); } diff --git a/erpnext/buying/doctype/supplier/supplier.js b/erpnext/buying/doctype/supplier/supplier.js index f0899b06b57b..1ae6f0364746 100644 --- a/erpnext/buying/doctype/supplier/supplier.js +++ b/erpnext/buying/doctype/supplier/supplier.js @@ -64,7 +64,7 @@ frappe.ui.form.on("Supplier", { // custom buttons frm.add_custom_button(__('Accounting Ledger'), function () { frappe.set_route('query-report', 'General Ledger', - { party_type: 'Supplier', party: frm.doc.name }); + { party_type: 'Supplier', party: frm.doc.name, party_name: frm.doc.supplier_name }); }, __("View")); frm.add_custom_button(__('Accounts Payable'), function () { diff --git a/erpnext/selling/doctype/customer/customer.js b/erpnext/selling/doctype/customer/customer.js index 107e4a4759d1..b53f339229b2 100644 --- a/erpnext/selling/doctype/customer/customer.js +++ b/erpnext/selling/doctype/customer/customer.js @@ -123,7 +123,7 @@ frappe.ui.form.on("Customer", { frm.add_custom_button(__('Accounting Ledger'), function () { frappe.set_route('query-report', 'General Ledger', - {party_type: 'Customer', party: frm.doc.name}); + {party_type: 'Customer', party: frm.doc.name, party_name: frm.doc.customer_name}); }, __('View')); frm.add_custom_button(__('Pricing Rule'), function () { From 477cb12240034da391d6fffea13a589fcec83e76 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 28 Mar 2023 16:52:53 +0530 Subject: [PATCH 341/355] fix: Percentage billing in Sales Order (#34606) fix: Percentage billing in Sales Order (#34606) (cherry picked from commit 12ad2aa2e5f5f173c9f52c07fb95e00b069dd403) Co-authored-by: Deepesh Garg --- erpnext/controllers/status_updater.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py index dd2a67032fe4..58cab147a477 100644 --- a/erpnext/controllers/status_updater.py +++ b/erpnext/controllers/status_updater.py @@ -464,7 +464,7 @@ def _update_percent_field(self, args, update_modified=True): ifnull((select ifnull(sum(case when abs(%(target_ref_field)s) > abs(%(target_field)s) then abs(%(target_field)s) else abs(%(target_ref_field)s) end), 0) / sum(abs(%(target_ref_field)s)) * 100 - from `tab%(target_dt)s` where parent='%(name)s' having sum(abs(%(target_ref_field)s)) > 0), 0), 6) + from `tab%(target_dt)s` where parent='%(name)s' and parenttype='%(target_parent_dt)s' having sum(abs(%(target_ref_field)s)) > 0), 0), 6) %(update_modified)s where name='%(name)s'""" % args From ff24b3e40c419b91306246dfedfcccd060b6cd37 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 28 Mar 2023 16:58:22 +0530 Subject: [PATCH 342/355] fix: don't get zero value entries for exchange rate calculation (#34475) fix: don't get zero value entries for exchange rate calculation (#34475) * fix: multiply None by float * chore: remove debug (cherry picked from commit 393bc25e2d98e1435dc3ac88d39907e647d56451) Co-authored-by: Devin Slauenwhite --- .../exchange_rate_revaluation/exchange_rate_revaluation.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py b/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py index a4f6a74a5abf..81c2d8bb7389 100644 --- a/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py +++ b/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py @@ -490,6 +490,8 @@ def calculate_exchange_rate_using_last_gle(company, account, party_type, party): conditions.append(gl.company == company) conditions.append(gl.account == account) conditions.append(gl.is_cancelled == 0) + conditions.append((gl.debit > 0) | (gl.credit > 0)) + conditions.append((gl.debit_in_account_currency > 0) | (gl.credit_in_account_currency > 0)) if party_type: conditions.append(gl.party_type == party_type) if party: From fd6db41b6e4887fcf898e3615d0f0c75c3c45111 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Tue, 28 Mar 2023 13:27:29 +0530 Subject: [PATCH 343/355] fix: removing redundant validation (cherry picked from commit d52f7e28202ec5359cf7ce03568df0bf39a06a54) --- erpnext/accounts/utils.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index 38aa8056e9cc..4ab0d56f681e 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -451,12 +451,6 @@ def reconcile_against_document(args): # nosemgrep else: update_reference_in_payment_entry(entry, doc, do_not_save=True) - if doc.doctype == "Journal Entry": - try: - doc.validate_total_debit_and_credit() - except Exception as validation_exception: - raise frappe.ValidationError(_(f"Validation Error for {doc.name}")) from validation_exception - doc.save(ignore_permissions=True) # re-submit advance entry doc = frappe.get_doc(entry.voucher_type, entry.voucher_no) From a8567b09e69e41866cb2c3bdcded9563d06dccf2 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 28 Mar 2023 17:20:26 +0530 Subject: [PATCH 344/355] fix: Tax Category not able to set hence it calculating zero tax for item whoes tax template set (#34525) fix: Tax Category not able to set hence it calculating zero tax for item whoes tax template set (#34525) * fix: Tax Category not able to set hence it calculating zero tax for item whoes tax template set * fix: minor change added (cherry picked from commit 7aafc90d583d787da17ed9c70427d9d74f3fdaeb) Co-authored-by: Vishal Dhayagude --- erpnext/accounts/party.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py index 4e2e2eb12c89..22cff133089f 100644 --- a/erpnext/accounts/party.py +++ b/erpnext/accounts/party.py @@ -174,6 +174,9 @@ def _get_party_details( party_type, party.name, "tax_withholding_category" ) + if not party_details.get("tax_category") and pos_profile: + party_details["tax_category"] = frappe.get_value("POS Profile", pos_profile, "tax_category") + return party_details From 76b782a03fe28078b992f3ae6f5f25148a8ef4a8 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Fri, 17 Mar 2023 13:53:49 +0530 Subject: [PATCH 345/355] fix: incorrect `Opening Value` in `Stock Balance` report (cherry picked from commit b04a101c11d8c3757303c21dd1496256ca01a240) --- .../report/stock_balance/stock_balance.py | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/erpnext/stock/report/stock_balance/stock_balance.py b/erpnext/stock/report/stock_balance/stock_balance.py index 0fc642ef207f..66991a907fdc 100644 --- a/erpnext/stock/report/stock_balance/stock_balance.py +++ b/erpnext/stock/report/stock_balance/stock_balance.py @@ -7,7 +7,7 @@ import frappe from frappe import _ -from frappe.query_builder.functions import CombineDatetime +from frappe.query_builder.functions import Coalesce, CombineDatetime from frappe.utils import cint, date_diff, flt, getdate from frappe.utils.nestedset import get_descendants_of @@ -322,6 +322,34 @@ def get_stock_ledger_entries(filters: StockBalanceFilter, items: List[str]) -> L return query.run(as_dict=True) +def get_opening_vouchers(to_date): + opening_vouchers = {"Stock Entry": [], "Stock Reconciliation": []} + + se = frappe.qb.DocType("Stock Entry") + sr = frappe.qb.DocType("Stock Reconciliation") + + vouchers_data = ( + frappe.qb.from_( + ( + frappe.qb.from_(se) + .select(se.name, Coalesce("Stock Entry").as_("voucher_type")) + .where((se.docstatus == 1) & (se.posting_date <= to_date) & (se.is_opening == "Yes")) + ) + + ( + frappe.qb.from_(sr) + .select(sr.name, Coalesce("Stock Reconciliation").as_("voucher_type")) + .where((sr.docstatus == 1) & (sr.posting_date <= to_date) & (sr.purpose == "Opening Stock")) + ) + ).select("voucher_type", "name") + ).run(as_dict=True) + + if vouchers_data: + for d in vouchers_data: + opening_vouchers[d.voucher_type].append(d.name) + + return opening_vouchers + + def get_inventory_dimension_fields(): return [dimension.fieldname for dimension in get_inventory_dimensions()] @@ -330,9 +358,8 @@ def get_item_warehouse_map(filters: StockBalanceFilter, sle: List[SLEntry]): iwb_map = {} from_date = getdate(filters.get("from_date")) to_date = getdate(filters.get("to_date")) - + opening_vouchers = get_opening_vouchers(to_date) float_precision = cint(frappe.db.get_default("float_precision")) or 3 - inventory_dimensions = get_inventory_dimension_fields() for d in sle: @@ -363,11 +390,7 @@ def get_item_warehouse_map(filters: StockBalanceFilter, sle: List[SLEntry]): value_diff = flt(d.stock_value_difference) - if d.posting_date < from_date or ( - d.posting_date == from_date - and d.voucher_type == "Stock Reconciliation" - and frappe.db.get_value("Stock Reconciliation", d.voucher_no, "purpose") == "Opening Stock" - ): + if d.posting_date < from_date or d.voucher_no in opening_vouchers.get(d.voucher_type, []): qty_dict.opening_qty += qty_diff qty_dict.opening_val += value_diff From cff35d7286d0831698d9b8c23dcd18343a02f22a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 28 Mar 2023 21:09:01 +0530 Subject: [PATCH 346/355] fix: zero rm-cost for batch rm item in SCR (backport #34616) (#34623) fix: zero rm-cost for batch rm item in SCR (#34616) fix: `0` rm-cost for batch rm item in SCR (cherry picked from commit 867d8983046ad175700bc73a6b844320e3efb064) Co-authored-by: Sagar Sharma --- erpnext/controllers/subcontracting_controller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/controllers/subcontracting_controller.py b/erpnext/controllers/subcontracting_controller.py index cc80f6ca984c..05754293b776 100644 --- a/erpnext/controllers/subcontracting_controller.py +++ b/erpnext/controllers/subcontracting_controller.py @@ -455,7 +455,7 @@ def __add_supplied_item(self, item_row, bom_item, qty): "allow_zero_valuation": 1, } ) - rm_obj.rate = get_incoming_rate(args) + rm_obj.rate = bom_item.rate if self.backflush_based_on == "BOM" else get_incoming_rate(args) if self.doctype == self.subcontract_data.order_doctype: rm_obj.required_qty = qty From a60c8f0e18c27439d710d61050b2232d21e5d3da Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 28 Mar 2023 18:23:52 +0000 Subject: [PATCH 347/355] chore(release): Bumped to Version 14.20.0 # [14.20.0](https://github.com/frappe/erpnext/compare/v14.19.0...v14.20.0) (2023-03-28) ### Bug Fixes * default pos conversion factor set to 1 ([#34437](https://github.com/frappe/erpnext/issues/34437)) ([18d813a](https://github.com/frappe/erpnext/commit/18d813a6561ddc63f6b880d89d0a3b6b2969e786)) * don't get zero value entries for exchange rate calculation ([#34475](https://github.com/frappe/erpnext/issues/34475)) ([ff24b3e](https://github.com/frappe/erpnext/commit/ff24b3e40c419b91306246dfedfcccd060b6cd37)) * incorrect `Opening Value` in `Stock Balance` report ([76b782a](https://github.com/frappe/erpnext/commit/76b782a03fe28078b992f3ae6f5f25148a8ef4a8)) * Note username overlapping with note content(CRM) ([096e5ef](https://github.com/frappe/erpnext/commit/096e5ef19766e032428afd2566817c90e694a16b)) * Party Name in SOA print when viewed from Customer/Supplier master ([#34597](https://github.com/frappe/erpnext/issues/34597)) ([835edbe](https://github.com/frappe/erpnext/commit/835edbe80e76ca03dfddeeb6d656ad4b5eeee1d6)) * Percentage billing in Sales Order ([#34606](https://github.com/frappe/erpnext/issues/34606)) ([477cb12](https://github.com/frappe/erpnext/commit/477cb12240034da391d6fffea13a589fcec83e76)) * recalculate WDV rate after asset repair [v14] ([#34571](https://github.com/frappe/erpnext/issues/34571)) ([d2ca6f8](https://github.com/frappe/erpnext/commit/d2ca6f8d1f36443635d50c27b3134daca494e33e)) * remove unused translation ([#34519](https://github.com/frappe/erpnext/issues/34519)) ([881e92e](https://github.com/frappe/erpnext/commit/881e92e7b363e6790d3260da11822ccdb5949d2f)) * removing redundant validation ([fd6db41](https://github.com/frappe/erpnext/commit/fd6db41b6e4887fcf898e3615d0f0c75c3c45111)) * Sales person variance report without item group ([#34552](https://github.com/frappe/erpnext/issues/34552)) ([90ddc4a](https://github.com/frappe/erpnext/commit/90ddc4a1e2ff277ef676650c899bc2c172bdbcf5)) * Tax Category not able to set hence it calculating zero tax for item whoes tax template set ([#34525](https://github.com/frappe/erpnext/issues/34525)) ([a8567b0](https://github.com/frappe/erpnext/commit/a8567b09e69e41866cb2c3bdcded9563d06dccf2)) * Time button not working in the job card ([8fed33b](https://github.com/frappe/erpnext/commit/8fed33b03bc1d609526e0506eb17612f21b466b0)) * translations and UX in alternative item mapping ([#34433](https://github.com/frappe/erpnext/issues/34433)) ([702d07e](https://github.com/frappe/erpnext/commit/702d07ea7db1a032ee0f617f642f68e6d63a0f77)) * unset address and contact on trash (backport [#34495](https://github.com/frappe/erpnext/issues/34495)) ([#34560](https://github.com/frappe/erpnext/issues/34560)) ([db01bf5](https://github.com/frappe/erpnext/commit/db01bf5dec74a190452b1c5a95fa59eba4db5c82)) * zero rm-cost for batch rm item in SCR (backport [#34616](https://github.com/frappe/erpnext/issues/34616)) ([#34623](https://github.com/frappe/erpnext/issues/34623)) ([cff35d7](https://github.com/frappe/erpnext/commit/cff35d7286d0831698d9b8c23dcd18343a02f22a)) ### Features * deprecate get_customer_list ([#34563](https://github.com/frappe/erpnext/issues/34563)) ([67576ad](https://github.com/frappe/erpnext/commit/67576ad5bdc78aa8ef79b6bf915df2ba87b9e21f)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 63dd69aeca66..8a50a5d369da 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.19.0" +__version__ = "14.20.0" def get_default_company(user=None): From da354362bec16d9de42f48b18a0a4b1857070c85 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 3 Apr 2023 14:47:58 +0530 Subject: [PATCH 348/355] fix: bom update log not working for large batch size (cherry picked from commit d56070301cedc3ffbafa8e7c556e775253fddd77) (cherry picked from commit 551190af305f1dcd6862bbaf298729c79e2a4183) --- .../manufacturing/doctype/bom_update_log/bom_update_log.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/erpnext/manufacturing/doctype/bom_update_log/bom_update_log.py b/erpnext/manufacturing/doctype/bom_update_log/bom_update_log.py index 51f7b24e745f..7477f9528ecb 100644 --- a/erpnext/manufacturing/doctype/bom_update_log/bom_update_log.py +++ b/erpnext/manufacturing/doctype/bom_update_log/bom_update_log.py @@ -164,7 +164,7 @@ def queue_bom_cost_jobs( while current_boms_list: batch_no += 1 - batch_size = 20_000 + batch_size = 7_000 boms_to_process = current_boms_list[:batch_size] # slice out batch of 20k BOMs # update list to exclude 20K (queued) BOMs @@ -212,7 +212,7 @@ def resume_bom_cost_update_jobs(): ["name", "boms_updated", "status"], ) incomplete_level = any(row.get("status") == "Pending" for row in bom_batches) - if not bom_batches or not incomplete_level: + if not bom_batches or incomplete_level: continue # Prep parent BOMs & updated processed BOMs for next level @@ -252,9 +252,6 @@ def get_processed_current_boms( current_boms = [] for row in bom_batches: - if not row.boms_updated: - continue - boms_updated = json.loads(row.boms_updated) current_boms.extend(boms_updated) boms_updated_dict = {bom: True for bom in boms_updated} From dfadfdc32c5687ee62bbc44e9a6931e14c40a115 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Mon, 3 Apr 2023 17:50:43 +0000 Subject: [PATCH 349/355] chore(release): Bumped to Version 14.20.1 ## [14.20.1](https://github.com/frappe/erpnext/compare/v14.20.0...v14.20.1) (2023-04-03) ### Bug Fixes * bom update log not working for large batch size ([da35436](https://github.com/frappe/erpnext/commit/da354362bec16d9de42f48b18a0a4b1857070c85)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 8a50a5d369da..643815e38fce 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.20.0" +__version__ = "14.20.1" def get_default_company(user=None): From 33ee958cfb3881cd3c560e8a4c5404e11478d90b Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 5 Apr 2023 17:41:20 +0530 Subject: [PATCH 350/355] chore: release v14 (#34733) --- .../accounts_settings/accounts_settings.json | 10 +- .../doctype/bank_clearance/bank_clearance.py | 16 +- .../chart_of_accounts_importer.py | 6 +- .../doctype/journal_entry/journal_entry.py | 3 +- .../doctype/payment_entry/payment_entry.js | 2 - .../doctype/payment_entry/payment_entry.py | 240 +++++- .../payment_entry/test_payment_entry.py | 222 ++++- .../payment_entry_deduction.json | 29 +- .../payment_reconciliation.js | 28 + .../payment_reconciliation.py | 9 + .../payment_request/payment_request.py | 14 +- .../doctype/pos_invoice/pos_invoice.py | 2 +- .../purchase_invoice/purchase_invoice.js | 6 +- .../purchase_invoice/purchase_invoice.json | 12 +- .../purchase_invoice/purchase_invoice.py | 27 +- .../doctype/sales_invoice/sales_invoice.js | 9 +- .../doctype/sales_invoice/sales_invoice.json | 10 +- .../doctype/sales_invoice/sales_invoice.py | 2 +- .../asset_depreciation_ledger.py | 1 + .../bank_clearance_summary.py | 64 +- erpnext/assets/doctype/asset/asset.js | 3 + erpnext/assets/doctype/asset/asset.json | 7 +- erpnext/assets/doctype/asset/asset.py | 188 +++- erpnext/assets/doctype/asset/depreciation.py | 12 +- erpnext/assets/doctype/asset/test_asset.py | 12 +- .../asset_maintenance/asset_maintenance.py | 2 + .../asset_maintenance_task.json | 806 ++++-------------- .../asset_value_adjustment.js | 2 +- .../doctype/purchase_order/purchase_order.js | 6 +- .../request_for_quotation.py | 5 +- erpnext/controllers/accounts_controller.py | 43 +- .../crm/report/lead_details/lead_details.py | 2 +- .../lost_opportunity/lost_opportunity.py | 2 +- .../doctype/website_item/test_website_item.py | 8 +- .../doctype/plaid_settings/plaid_settings.py | 2 +- erpnext/hooks.py | 4 + erpnext/manufacturing/doctype/bom/bom.py | 12 +- .../production_plan/production_plan.json | 3 +- .../production_plan_item_reference.json | 5 +- erpnext/public/js/controllers/accounts.js | 8 + .../public/js/controllers/taxes_and_totals.js | 2 +- erpnext/public/js/controllers/transaction.js | 52 +- erpnext/public/js/website_utils.js | 15 - .../setup/doctype/item_group/item_group.py | 9 +- erpnext/stock/doctype/batch/batch.py | 8 +- .../stock_reconciliation.py | 12 +- erpnext/stock/get_item_details.py | 23 +- .../stock/report/stock_ledger/stock_ledger.py | 3 + erpnext/templates/utils.py | 9 +- erpnext/utilities/transaction_base.py | 56 +- erpnext/www/shop-by-category/index.py | 12 +- 51 files changed, 1186 insertions(+), 859 deletions(-) diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json index 1e2e2acd79af..1c0d64f065b8 100644 --- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json +++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json @@ -31,6 +31,7 @@ "determine_address_tax_category_from", "column_break_19", "add_taxes_from_item_tax_template", + "book_tax_discount_loss", "print_settings", "show_inclusive_tax_in_print", "column_break_12", @@ -347,6 +348,13 @@ "fieldname": "allow_multi_currency_invoices_against_single_party_account", "fieldtype": "Check", "label": "Allow multi-currency invoices against single party account " + }, + { + "default": "0", + "description": "Split Early Payment Discount Loss into Income and Tax Loss", + "fieldname": "book_tax_discount_loss", + "fieldtype": "Check", + "label": "Book Tax Loss on Early Payment Discount" } ], "icon": "icon-cog", @@ -354,7 +362,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2022-11-27 21:49:52.538655", + "modified": "2023-03-28 09:50:20.375233", "modified_by": "Administrator", "module": "Accounts", "name": "Accounts Settings", diff --git a/erpnext/accounts/doctype/bank_clearance/bank_clearance.py b/erpnext/accounts/doctype/bank_clearance/bank_clearance.py index 80878ac50682..081718726bdf 100644 --- a/erpnext/accounts/doctype/bank_clearance/bank_clearance.py +++ b/erpnext/accounts/doctype/bank_clearance/bank_clearance.py @@ -81,7 +81,7 @@ def get_payment_entries(self): loan_disbursement = frappe.qb.DocType("Loan Disbursement") - loan_disbursements = ( + query = ( frappe.qb.from_(loan_disbursement) .select( ConstantColumn("Loan Disbursement").as_("payment_document"), @@ -90,17 +90,22 @@ def get_payment_entries(self): ConstantColumn(0).as_("debit"), loan_disbursement.reference_number.as_("cheque_number"), loan_disbursement.reference_date.as_("cheque_date"), + loan_disbursement.clearance_date.as_("clearance_date"), loan_disbursement.disbursement_date.as_("posting_date"), loan_disbursement.applicant.as_("against_account"), ) .where(loan_disbursement.docstatus == 1) .where(loan_disbursement.disbursement_date >= self.from_date) .where(loan_disbursement.disbursement_date <= self.to_date) - .where(loan_disbursement.clearance_date.isnull()) .where(loan_disbursement.disbursement_account.isin([self.bank_account, self.account])) .orderby(loan_disbursement.disbursement_date) .orderby(loan_disbursement.name, order=frappe.qb.desc) - ).run(as_dict=1) + ) + + if not self.include_reconciled_entries: + query = query.where(loan_disbursement.clearance_date.isnull()) + + loan_disbursements = query.run(as_dict=1) loan_repayment = frappe.qb.DocType("Loan Repayment") @@ -113,16 +118,19 @@ def get_payment_entries(self): ConstantColumn(0).as_("credit"), loan_repayment.reference_number.as_("cheque_number"), loan_repayment.reference_date.as_("cheque_date"), + loan_repayment.clearance_date.as_("clearance_date"), loan_repayment.applicant.as_("against_account"), loan_repayment.posting_date, ) .where(loan_repayment.docstatus == 1) - .where(loan_repayment.clearance_date.isnull()) .where(loan_repayment.posting_date >= self.from_date) .where(loan_repayment.posting_date <= self.to_date) .where(loan_repayment.payment_account.isin([self.bank_account, self.account])) ) + if not self.include_reconciled_entries: + query = query.where(loan_repayment.clearance_date.isnull()) + if frappe.db.has_column("Loan Repayment", "repay_from_salary"): query = query.where((loan_repayment.repay_from_salary == 0)) diff --git a/erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py b/erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py index c676c97616c0..e78f5f46dbc1 100644 --- a/erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py +++ b/erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py @@ -325,14 +325,14 @@ def get_template(template_type): if template_type == "Blank Template": for root_type in get_root_types(): - writer.writerow(["", "", "", 1, "", root_type]) + writer.writerow(["", "", "", "", 1, "", root_type]) for account in get_mandatory_group_accounts(): - writer.writerow(["", "", "", 1, account, "Asset"]) + writer.writerow(["", "", "", "", 1, account, "Asset"]) for account_type in get_mandatory_account_types(): writer.writerow( - ["", "", "", 0, account_type.get("account_type"), account_type.get("root_type")] + ["", "", "", "", 0, account_type.get("account_type"), account_type.get("root_type")] ) else: writer = get_sample_template(writer) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 56fe333e047e..608267154b60 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -51,7 +51,7 @@ def validate(self): self.validate_multi_currency() self.set_amounts_in_company_currency() self.validate_debit_credit_amount() - + self.set_total_debit_credit() # Do not validate while importing via data import if not frappe.flags.in_import: self.validate_total_debit_and_credit() @@ -659,7 +659,6 @@ def validate_debit_credit_amount(self): frappe.throw(_("Row {0}: Both Debit and Credit values cannot be zero").format(d.idx)) def validate_total_debit_and_credit(self): - self.set_total_debit_credit() if not (self.voucher_type == "Exchange Gain Or Loss" and self.multi_currency): if self.difference: frappe.throw( diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js index 91374ae217b2..5a56a6b00466 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.js +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js @@ -245,8 +245,6 @@ frappe.ui.form.on('Payment Entry', { frm.set_currency_labels(["total_amount", "outstanding_amount", "allocated_amount"], party_account_currency, "references"); - frm.set_currency_labels(["amount"], company_currency, "deductions"); - cur_frm.set_df_property("source_exchange_rate", "description", ("1 " + frm.doc.paid_from_account_currency + " = [?] " + company_currency)); diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index a585924d20fd..58ed7d1822c0 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -416,7 +416,7 @@ def update_payment_schedule(self, cancel=0): for ref in self.get("references"): if ref.payment_term and ref.reference_name: - key = (ref.payment_term, ref.reference_name) + key = (ref.payment_term, ref.reference_name, ref.reference_doctype) invoice_payment_amount_map.setdefault(key, 0.0) invoice_payment_amount_map[key] += ref.allocated_amount @@ -424,20 +424,37 @@ def update_payment_schedule(self, cancel=0): payment_schedule = frappe.get_all( "Payment Schedule", filters={"parent": ref.reference_name}, - fields=["paid_amount", "payment_amount", "payment_term", "discount", "outstanding"], + fields=[ + "paid_amount", + "payment_amount", + "payment_term", + "discount", + "outstanding", + "discount_type", + ], ) for term in payment_schedule: - invoice_key = (term.payment_term, ref.reference_name) + invoice_key = (term.payment_term, ref.reference_name, ref.reference_doctype) invoice_paid_amount_map.setdefault(invoice_key, {}) invoice_paid_amount_map[invoice_key]["outstanding"] = term.outstanding - invoice_paid_amount_map[invoice_key]["discounted_amt"] = ref.total_amount * ( - term.discount / 100 - ) + if not (term.discount_type and term.discount): + continue + + if term.discount_type == "Percentage": + invoice_paid_amount_map[invoice_key]["discounted_amt"] = ref.total_amount * ( + term.discount / 100 + ) + else: + invoice_paid_amount_map[invoice_key]["discounted_amt"] = term.discount for idx, (key, allocated_amount) in enumerate(invoice_payment_amount_map.items(), 1): if not invoice_paid_amount_map.get(key): frappe.throw(_("Payment term {0} not used in {1}").format(key[0], key[1])) + allocated_amount = self.get_allocated_amount_in_transaction_currency( + allocated_amount, key[2], key[1] + ) + outstanding = flt(invoice_paid_amount_map.get(key, {}).get("outstanding")) discounted_amt = flt(invoice_paid_amount_map.get(key, {}).get("discounted_amt")) @@ -472,6 +489,33 @@ def update_payment_schedule(self, cancel=0): (allocated_amount - discounted_amt, discounted_amt, allocated_amount, key[1], key[0]), ) + def get_allocated_amount_in_transaction_currency( + self, allocated_amount, reference_doctype, reference_docname + ): + """ + Payment Entry could be in base currency while reference's payment schedule + is always in transaction currency. + E.g. + * SI with base=INR and currency=USD + * SI with payment schedule in USD + * PE in INR (accounting done in base currency) + """ + ref_currency, ref_exchange_rate = frappe.db.get_value( + reference_doctype, reference_docname, ["currency", "conversion_rate"] + ) + is_single_currency = self.paid_from_account_currency == self.paid_to_account_currency + # PE in different currency + reference_is_multi_currency = self.paid_from_account_currency != ref_currency + + if not (is_single_currency and reference_is_multi_currency): + return allocated_amount + + allocated_amount = flt( + allocated_amount / ref_exchange_rate, self.precision("total_allocated_amount") + ) + + return allocated_amount + def set_status(self): if self.docstatus == 2: self.status = "Cancelled" @@ -1642,7 +1686,14 @@ def get_reference_details(reference_doctype, reference_name, party_account_curre @frappe.whitelist() def get_payment_entry( - dt, dn, party_amount=None, bank_account=None, bank_amount=None, party_type=None, payment_type=None + dt, + dn, + party_amount=None, + bank_account=None, + bank_amount=None, + party_type=None, + payment_type=None, + reference_date=None, ): reference_doc = None doc = frappe.get_doc(dt, dn) @@ -1669,8 +1720,9 @@ def get_payment_entry( dt, party_account_currency, bank, outstanding_amount, payment_type, bank_amount, doc ) - paid_amount, received_amount, discount_amount = apply_early_payment_discount( - paid_amount, received_amount, doc + reference_date = getdate(reference_date) + paid_amount, received_amount, discount_amount, valid_discounts = apply_early_payment_discount( + paid_amount, received_amount, doc, party_account_currency, reference_date ) pe = frappe.new_doc("Payment Entry") @@ -1678,6 +1730,7 @@ def get_payment_entry( pe.company = doc.company pe.cost_center = doc.get("cost_center") pe.posting_date = nowdate() + pe.reference_date = reference_date pe.mode_of_payment = doc.get("mode_of_payment") pe.party_type = party_type pe.party = doc.get(scrub(party_type)) @@ -1718,7 +1771,7 @@ def get_payment_entry( ): for reference in get_reference_as_per_payment_terms( - doc.payment_schedule, dt, dn, doc, grand_total, outstanding_amount + doc.payment_schedule, dt, dn, doc, grand_total, outstanding_amount, party_account_currency ): pe.append("references", reference) else: @@ -1769,16 +1822,17 @@ def get_payment_entry( if party_account and bank: pe.set_exchange_rate(ref_doc=reference_doc) pe.set_amounts() + if discount_amount: - pe.set_gain_or_loss( - account_details={ - "account": frappe.get_cached_value("Company", pe.company, "default_discount_account"), - "cost_center": pe.cost_center - or frappe.get_cached_value("Company", pe.company, "cost_center"), - "amount": discount_amount * (-1 if payment_type == "Pay" else 1), - } + base_total_discount_loss = 0 + if frappe.db.get_single_value("Accounts Settings", "book_tax_discount_loss"): + base_total_discount_loss = split_early_payment_discount_loss(pe, doc, valid_discounts) + + set_pending_discount_loss( + pe, doc, discount_amount, base_total_discount_loss, party_account_currency ) - pe.set_difference_amount() + + pe.set_difference_amount() return pe @@ -1889,20 +1943,28 @@ def set_paid_amount_and_received_amount( return paid_amount, received_amount -def apply_early_payment_discount(paid_amount, received_amount, doc): +def apply_early_payment_discount( + paid_amount, received_amount, doc, party_account_currency, reference_date +): total_discount = 0 + valid_discounts = [] eligible_for_payments = ["Sales Order", "Sales Invoice", "Purchase Order", "Purchase Invoice"] has_payment_schedule = hasattr(doc, "payment_schedule") and doc.payment_schedule + is_multi_currency = party_account_currency != doc.company_currency if doc.doctype in eligible_for_payments and has_payment_schedule: for term in doc.payment_schedule: - if not term.discounted_amount and term.discount and getdate(nowdate()) <= term.discount_date: + if not term.discounted_amount and term.discount and reference_date <= term.discount_date: + if term.discount_type == "Percentage": - discount_amount = flt(doc.get("grand_total")) * (term.discount / 100) + grand_total = doc.get("grand_total") if is_multi_currency else doc.get("base_grand_total") + discount_amount = flt(grand_total) * (term.discount / 100) else: discount_amount = term.discount - discount_amount_in_foreign_currency = discount_amount * doc.get("conversion_rate", 1) + # if accounting is done in the same currency, paid_amount = received_amount + conversion_rate = doc.get("conversion_rate", 1) if is_multi_currency else 1 + discount_amount_in_foreign_currency = discount_amount * conversion_rate if doc.doctype == "Sales Invoice": paid_amount -= discount_amount @@ -1911,23 +1973,151 @@ def apply_early_payment_discount(paid_amount, received_amount, doc): received_amount -= discount_amount paid_amount -= discount_amount_in_foreign_currency + valid_discounts.append({"type": term.discount_type, "discount": term.discount}) total_discount += discount_amount if total_discount: - money = frappe.utils.fmt_money(total_discount, currency=doc.get("currency")) + currency = doc.get("currency") if is_multi_currency else doc.company_currency + money = frappe.utils.fmt_money(total_discount, currency=currency) frappe.msgprint(_("Discount of {} applied as per Payment Term").format(money), alert=1) - return paid_amount, received_amount, total_discount + return paid_amount, received_amount, total_discount, valid_discounts + + +def set_pending_discount_loss( + pe, doc, discount_amount, base_total_discount_loss, party_account_currency +): + # If multi-currency, get base discount amount to adjust with base currency deductions/losses + if party_account_currency != doc.company_currency: + discount_amount = discount_amount * doc.get("conversion_rate", 1) + + # Avoid considering miniscule losses + discount_amount = flt(discount_amount - base_total_discount_loss, doc.precision("grand_total")) + + # Set base discount amount (discount loss/pending rounding loss) in deductions + if discount_amount > 0.0: + positive_negative = -1 if pe.payment_type == "Pay" else 1 + + # If tax loss booking is enabled, pending loss will be rounding loss. + # Otherwise it will be the total discount loss. + book_tax_loss = frappe.db.get_single_value("Accounts Settings", "book_tax_discount_loss") + account_type = "round_off_account" if book_tax_loss else "default_discount_account" + + pe.set_gain_or_loss( + account_details={ + "account": frappe.get_cached_value("Company", pe.company, account_type), + "cost_center": pe.cost_center or frappe.get_cached_value("Company", pe.company, "cost_center"), + "amount": discount_amount * positive_negative, + } + ) + + +def split_early_payment_discount_loss(pe, doc, valid_discounts) -> float: + """Split early payment discount into Income Loss & Tax Loss.""" + total_discount_percent = get_total_discount_percent(doc, valid_discounts) + + if not total_discount_percent: + return 0.0 + + base_loss_on_income = add_income_discount_loss(pe, doc, total_discount_percent) + base_loss_on_taxes = add_tax_discount_loss(pe, doc, total_discount_percent) + + # Round off total loss rather than individual losses to reduce rounding error + return flt(base_loss_on_income + base_loss_on_taxes, doc.precision("grand_total")) + + +def get_total_discount_percent(doc, valid_discounts) -> float: + """Get total percentage and amount discount applied as a percentage.""" + total_discount_percent = ( + sum( + discount.get("discount") for discount in valid_discounts if discount.get("type") == "Percentage" + ) + or 0.0 + ) + + # Operate in percentages only as it makes the income & tax split easier + total_discount_amount = ( + sum(discount.get("discount") for discount in valid_discounts if discount.get("type") == "Amount") + or 0.0 + ) + + if total_discount_amount: + discount_percentage = (total_discount_amount / doc.get("grand_total")) * 100 + total_discount_percent += discount_percentage + return total_discount_percent + + return total_discount_percent + + +def add_income_discount_loss(pe, doc, total_discount_percent) -> float: + """Add loss on income discount in base currency.""" + precision = doc.precision("total") + base_loss_on_income = doc.get("base_total") * (total_discount_percent / 100) + + pe.append( + "deductions", + { + "account": frappe.get_cached_value("Company", pe.company, "default_discount_account"), + "cost_center": pe.cost_center or frappe.get_cached_value("Company", pe.company, "cost_center"), + "amount": flt(base_loss_on_income, precision), + }, + ) + + return base_loss_on_income # Return loss without rounding + + +def add_tax_discount_loss(pe, doc, total_discount_percentage) -> float: + """Add loss on tax discount in base currency.""" + tax_discount_loss = {} + base_total_tax_loss = 0 + precision = doc.precision("tax_amount_after_discount_amount", "taxes") + + # The same account head could be used more than once + for tax in doc.get("taxes", []): + base_tax_loss = tax.get("base_tax_amount_after_discount_amount") * ( + total_discount_percentage / 100 + ) + + account = tax.get("account_head") + if not tax_discount_loss.get(account): + tax_discount_loss[account] = base_tax_loss + else: + tax_discount_loss[account] += base_tax_loss + + for account, loss in tax_discount_loss.items(): + base_total_tax_loss += loss + if loss == 0.0: + continue + + pe.append( + "deductions", + { + "account": account, + "cost_center": pe.cost_center or frappe.get_cached_value("Company", pe.company, "cost_center"), + "amount": flt(loss, precision), + }, + ) + + return base_total_tax_loss # Return loss without rounding def get_reference_as_per_payment_terms( - payment_schedule, dt, dn, doc, grand_total, outstanding_amount + payment_schedule, dt, dn, doc, grand_total, outstanding_amount, party_account_currency ): references = [] + is_multi_currency_acc = (doc.currency != doc.company_currency) and ( + party_account_currency != doc.company_currency + ) + for payment_term in payment_schedule: payment_term_outstanding = flt( payment_term.payment_amount - payment_term.paid_amount, payment_term.precision("payment_amount") ) + if not is_multi_currency_acc: + # If accounting is done in company currency for multi-currency transaction + payment_term_outstanding = flt( + payment_term_outstanding * doc.get("conversion_rate"), payment_term.precision("payment_amount") + ) if payment_term_outstanding: references.append( diff --git a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py index 123b5dfd512b..67049c47ad05 100644 --- a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py @@ -5,7 +5,7 @@ import frappe from frappe import qb -from frappe.tests.utils import FrappeTestCase +from frappe.tests.utils import FrappeTestCase, change_settings from frappe.utils import flt, nowdate from erpnext.accounts.doctype.payment_entry.payment_entry import ( @@ -256,10 +256,25 @@ def test_payment_entry_against_payment_terms_with_discount(self): }, ) si.save() - si.submit() + frappe.db.set_single_value("Accounts Settings", "book_tax_discount_loss", 1) + pe_with_tax_loss = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Cash - _TC") + + self.assertEqual(pe_with_tax_loss.references[0].payment_term, "30 Credit Days with 10% Discount") + self.assertEqual(pe_with_tax_loss.references[0].allocated_amount, 236.0) + self.assertEqual(pe_with_tax_loss.paid_amount, 212.4) + self.assertEqual(pe_with_tax_loss.deductions[0].amount, 20.0) # Loss on Income + self.assertEqual(pe_with_tax_loss.deductions[1].amount, 3.6) # Loss on Tax + self.assertEqual(pe_with_tax_loss.deductions[1].account, "_Test Account Service Tax - _TC") + + frappe.db.set_single_value("Accounts Settings", "book_tax_discount_loss", 0) pe = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Cash - _TC") + + self.assertEqual(pe.references[0].allocated_amount, 236.0) + self.assertEqual(pe.paid_amount, 212.4) + self.assertEqual(pe.deductions[0].amount, 23.6) + pe.submit() si.load_from_db() @@ -269,6 +284,190 @@ def test_payment_entry_against_payment_terms_with_discount(self): self.assertEqual(si.payment_schedule[0].outstanding, 0) self.assertEqual(si.payment_schedule[0].discounted_amount, 23.6) + def test_payment_entry_against_payment_terms_with_discount_amount(self): + si = create_sales_invoice(do_not_save=1, qty=1, rate=200) + + si.payment_terms_template = "Test Discount Amount Template" + create_payment_terms_template_with_discount( + name="30 Credit Days with Rs.50 Discount", + discount_type="Amount", + discount=50, + template_name="Test Discount Amount Template", + ) + frappe.db.set_value("Company", si.company, "default_discount_account", "Write Off - _TC") + + si.append( + "taxes", + { + "charge_type": "On Net Total", + "account_head": "_Test Account Service Tax - _TC", + "cost_center": "_Test Cost Center - _TC", + "description": "Service Tax", + "rate": 18, + }, + ) + si.save() + si.submit() + + # Set reference date past discount cut off date + pe_1 = get_payment_entry( + "Sales Invoice", + si.name, + bank_account="_Test Cash - _TC", + reference_date=frappe.utils.add_days(si.posting_date, 2), + ) + self.assertEqual(pe_1.paid_amount, 236.0) # discount not applied + + # Test if tax loss is booked on enabling configuration + frappe.db.set_single_value("Accounts Settings", "book_tax_discount_loss", 1) + pe_with_tax_loss = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Cash - _TC") + self.assertEqual(pe_with_tax_loss.deductions[0].amount, 42.37) # Loss on Income + self.assertEqual(pe_with_tax_loss.deductions[1].amount, 7.63) # Loss on Tax + self.assertEqual(pe_with_tax_loss.deductions[1].account, "_Test Account Service Tax - _TC") + + frappe.db.set_single_value("Accounts Settings", "book_tax_discount_loss", 0) + pe = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Cash - _TC") + self.assertEqual(pe.references[0].allocated_amount, 236.0) + self.assertEqual(pe.paid_amount, 186) + self.assertEqual(pe.deductions[0].amount, 50.0) + + pe.submit() + si.load_from_db() + + self.assertEqual(si.payment_schedule[0].payment_amount, 236.0) + self.assertEqual(si.payment_schedule[0].paid_amount, 186) + self.assertEqual(si.payment_schedule[0].outstanding, 0) + self.assertEqual(si.payment_schedule[0].discounted_amount, 50) + + @change_settings( + "Accounts Settings", + { + "allow_multi_currency_invoices_against_single_party_account": 1, + "book_tax_discount_loss": 1, + }, + ) + def test_payment_entry_multicurrency_si_with_base_currency_accounting_early_payment_discount( + self, + ): + """ + 1. Multi-currency SI with single currency accounting (company currency) + 2. PE with early payment discount + 3. Test if Paid Amount is calculated in company currency + 4. Test if deductions are calculated in company currency + + SI is in USD to document agreed amounts that are in USD, but the accounting is in base currency. + """ + si = create_sales_invoice( + customer="_Test Customer", + currency="USD", + conversion_rate=50, + do_not_save=1, + ) + create_payment_terms_template_with_discount() + si.payment_terms_template = "Test Discount Template" + + frappe.db.set_value("Company", si.company, "default_discount_account", "Write Off - _TC") + si.save() + si.submit() + + pe = get_payment_entry( + "Sales Invoice", + si.name, + bank_account="_Test Bank - _TC", + ) + pe.reference_no = si.name + pe.reference_date = nowdate() + + # Early payment discount loss on income + self.assertEqual(pe.paid_amount, 4500.0) # Amount in company currency + self.assertEqual(pe.received_amount, 4500.0) + self.assertEqual(pe.deductions[0].amount, 500.0) + self.assertEqual(pe.deductions[0].account, "Write Off - _TC") + self.assertEqual(pe.difference_amount, 0.0) + + pe.insert() + pe.submit() + + expected_gle = dict( + (d[0], d) + for d in [ + ["Debtors - _TC", 0, 5000, si.name], + ["_Test Bank - _TC", 4500, 0, None], + ["Write Off - _TC", 500.0, 0, None], + ] + ) + + self.validate_gl_entries(pe.name, expected_gle) + + outstanding_amount = flt(frappe.db.get_value("Sales Invoice", si.name, "outstanding_amount")) + self.assertEqual(outstanding_amount, 0) + + def test_payment_entry_multicurrency_accounting_si_with_early_payment_discount(self): + """ + 1. Multi-currency SI with multi-currency accounting + 2. PE with early payment discount and also exchange loss + 3. Test if Paid Amount is calculated in transaction currency + 4. Test if deductions are calculated in base/company currency + 5. Test if exchange loss is reflected in difference + """ + si = create_sales_invoice( + customer="_Test Customer USD", + debit_to="_Test Receivable USD - _TC", + currency="USD", + conversion_rate=50, + do_not_save=1, + ) + create_payment_terms_template_with_discount() + si.payment_terms_template = "Test Discount Template" + + frappe.db.set_value("Company", si.company, "default_discount_account", "Write Off - _TC") + si.save() + si.submit() + + pe = get_payment_entry( + "Sales Invoice", si.name, bank_account="_Test Bank - _TC", bank_amount=4700 + ) + pe.reference_no = si.name + pe.reference_date = nowdate() + + # Early payment discount loss on income + self.assertEqual(pe.paid_amount, 90.0) + self.assertEqual(pe.received_amount, 4200.0) # 5000 - 500 (discount) - 300 (exchange loss) + self.assertEqual(pe.deductions[0].amount, 500.0) + self.assertEqual(pe.deductions[0].account, "Write Off - _TC") + + # Exchange loss + self.assertEqual(pe.difference_amount, 300.0) + + pe.append( + "deductions", + { + "account": "_Test Exchange Gain/Loss - _TC", + "cost_center": "_Test Cost Center - _TC", + "amount": 300.0, + }, + ) + + pe.insert() + pe.submit() + + self.assertEqual(pe.difference_amount, 0.0) + + expected_gle = dict( + (d[0], d) + for d in [ + ["_Test Receivable USD - _TC", 0, 5000, si.name], + ["_Test Bank - _TC", 4200, 0, None], + ["Write Off - _TC", 500.0, 0, None], + ["_Test Exchange Gain/Loss - _TC", 300.0, 0, None], + ] + ) + + self.validate_gl_entries(pe.name, expected_gle) + + outstanding_amount = flt(frappe.db.get_value("Sales Invoice", si.name, "outstanding_amount")) + self.assertEqual(outstanding_amount, 0) + def test_payment_against_purchase_invoice_to_check_status(self): pi = make_purchase_invoice( supplier="_Test Supplier USD", @@ -839,24 +1038,27 @@ def create_payment_terms_template(): ).insert() -def create_payment_terms_template_with_discount(): - - create_payment_term("30 Credit Days with 10% Discount") +def create_payment_terms_template_with_discount( + name=None, discount_type=None, discount=None, template_name=None +): + create_payment_term(name or "30 Credit Days with 10% Discount") + template_name = template_name or "Test Discount Template" - if not frappe.db.exists("Payment Terms Template", "Test Discount Template"): - payment_term_template = frappe.get_doc( + if not frappe.db.exists("Payment Terms Template", template_name): + frappe.get_doc( { "doctype": "Payment Terms Template", - "template_name": "Test Discount Template", + "template_name": template_name, "allocate_payment_based_on_payment_terms": 1, "terms": [ { "doctype": "Payment Terms Template Detail", - "payment_term": "30 Credit Days with 10% Discount", + "payment_term": name or "30 Credit Days with 10% Discount", "invoice_portion": 100, "credit_days_based_on": "Day(s) after invoice date", "credit_days": 2, - "discount": 10, + "discount_type": discount_type or "Percentage", + "discount": discount or 10, "discount_validity_based_on": "Day(s) after invoice date", "discount_validity": 1, } diff --git a/erpnext/accounts/doctype/payment_entry_deduction/payment_entry_deduction.json b/erpnext/accounts/doctype/payment_entry_deduction/payment_entry_deduction.json index 61a1462dd7a4..1c31829f0ea6 100644 --- a/erpnext/accounts/doctype/payment_entry_deduction/payment_entry_deduction.json +++ b/erpnext/accounts/doctype/payment_entry_deduction/payment_entry_deduction.json @@ -3,6 +3,7 @@ "creation": "2016-06-15 15:56:30.815503", "doctype": "DocType", "editable_grid": 1, + "engine": "InnoDB", "field_order": [ "account", "cost_center", @@ -17,9 +18,7 @@ "in_list_view": 1, "label": "Account", "options": "Account", - "reqd": 1, - "show_days": 1, - "show_seconds": 1 + "reqd": 1 }, { "fieldname": "cost_center", @@ -28,37 +27,30 @@ "label": "Cost Center", "options": "Cost Center", "print_hide": 1, - "reqd": 1, - "show_days": 1, - "show_seconds": 1 + "reqd": 1 }, { "fieldname": "amount", "fieldtype": "Currency", "in_list_view": 1, - "label": "Amount", - "reqd": 1, - "show_days": 1, - "show_seconds": 1 + "label": "Amount (Company Currency)", + "options": "Company:company:default_currency", + "reqd": 1 }, { "fieldname": "column_break_2", - "fieldtype": "Column Break", - "show_days": 1, - "show_seconds": 1 + "fieldtype": "Column Break" }, { "fieldname": "description", "fieldtype": "Small Text", - "label": "Description", - "show_days": 1, - "show_seconds": 1 + "label": "Description" } ], "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2020-09-12 20:38:08.110674", + "modified": "2023-03-06 07:11:57.739619", "modified_by": "Administrator", "module": "Accounts", "name": "Payment Entry Deduction", @@ -66,5 +58,6 @@ "permissions": [], "quick_entry": 1, "sort_field": "modified", - "sort_order": "DESC" + "sort_order": "DESC", + "states": [] } \ No newline at end of file diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js index d986f320669c..caffac5354ff 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js @@ -272,4 +272,32 @@ erpnext.accounts.PaymentReconciliationController = class PaymentReconciliationCo } }; +frappe.ui.form.on('Payment Reconciliation Allocation', { + allocated_amount: function(frm, cdt, cdn) { + let row = locals[cdt][cdn]; + // filter invoice + let invoice = frm.doc.invoices.filter((x) => (x.invoice_number == row.invoice_number)); + // filter payment + let payment = frm.doc.payments.filter((x) => (x.reference_name == row.reference_name)); + + frm.call({ + doc: frm.doc, + method: 'calculate_difference_on_allocation_change', + args: { + payment_entry: payment, + invoice: invoice, + allocated_amount: row.allocated_amount + }, + callback: (r) => { + if (r.message) { + row.difference_amount = r.message; + frm.refresh(); + } + } + }); + } +}); + + + extend_cscript(cur_frm.cscript, new erpnext.accounts.PaymentReconciliationController({frm: cur_frm})); diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py index c9e3998ac8a0..d8082d058f3f 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py @@ -233,6 +233,15 @@ def get_difference_amount(self, payment_entry, invoice, allocated_amount): return difference_amount + @frappe.whitelist() + def calculate_difference_on_allocation_change(self, payment_entry, invoice, allocated_amount): + invoice_exchange_map = self.get_invoice_exchange_map(invoice, payment_entry) + invoice[0]["exchange_rate"] = invoice_exchange_map.get(invoice[0].get("invoice_number")) + new_difference_amount = self.get_difference_amount( + payment_entry[0], invoice[0], allocated_amount + ) + return new_difference_amount + @frappe.whitelist() def allocate_entries(self, args): self.validate_entries() diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index d9b07435fdb3..aa8743e1caa4 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -497,10 +497,16 @@ def get_amount(ref_doc, payment_account=None): if dt in ["Sales Order", "Purchase Order"]: grand_total = flt(ref_doc.rounded_total) or flt(ref_doc.grand_total) elif dt in ["Sales Invoice", "Purchase Invoice"]: - if ref_doc.party_account_currency == ref_doc.currency: - grand_total = flt(ref_doc.outstanding_amount) - else: - grand_total = flt(ref_doc.outstanding_amount) / ref_doc.conversion_rate + if not ref_doc.is_pos: + if ref_doc.party_account_currency == ref_doc.currency: + grand_total = flt(ref_doc.outstanding_amount) + else: + grand_total = flt(ref_doc.outstanding_amount) / ref_doc.conversion_rate + elif dt == "Sales Invoice": + for pay in ref_doc.payments: + if pay.type == "Phone" and pay.account == payment_account: + grand_total = pay.amount + break elif dt == "POS Invoice": for pay in ref_doc.payments: if pay.type == "Phone" and pay.account == payment_account: diff --git a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py index 0af4c0ea4804..27e6f0e598f5 100644 --- a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py +++ b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py @@ -674,7 +674,7 @@ def get_bin_qty(item_code, warehouse): def get_pos_reserved_qty(item_code, warehouse): reserved_qty = frappe.db.sql( - """select sum(p_item.qty) as qty + """select sum(p_item.stock_qty) as qty from `tabPOS Invoice` p, `tabPOS Invoice Item` p_item where p.name = p_item.parent and ifnull(p.consolidated_invoice, '') = '' diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js index e2b4a1ad5bef..5c9168bf9c50 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js @@ -82,7 +82,11 @@ erpnext.accounts.PurchaseInvoice = class PurchaseInvoice extends erpnext.buying. if(doc.docstatus == 1 && doc.outstanding_amount != 0 && !(doc.is_return && doc.return_against) && !doc.on_hold) { - this.frm.add_custom_button(__('Payment'), this.make_payment_entry, __('Create')); + this.frm.add_custom_button( + __('Payment'), + () => this.make_payment_entry(), + __('Create') + ); cur_frm.page.set_inner_btn_group_as_primary(__('Create')); } diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json index 629a0ffb5822..1c8c4b3193b2 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json @@ -118,6 +118,7 @@ "paid_amount", "advances_section", "allocate_advances_automatically", + "only_include_allocated_payments", "get_advances", "advances", "advance_tax", @@ -1550,17 +1551,24 @@ "fieldname": "named_place", "fieldtype": "Data", "label": "Named Place" + }, + { + "default": "0", + "depends_on": "allocate_advances_automatically", + "description": "Advance payments allocated against orders will only be fetched", + "fieldname": "only_include_allocated_payments", + "fieldtype": "Check", + "label": "Only Include Allocated Payments" } ], "icon": "fa fa-file-text", "idx": 204, "is_submittable": 1, "links": [], - "modified": "2023-01-28 19:18:56.586321", + "modified": "2023-04-03 22:57:14.074982", "modified_by": "Administrator", "module": "Accounts", "name": "Purchase Invoice", - "name_case": "Title Case", "naming_rule": "By \"Naming Series\" field", "owner": "Administrator", "permissions": [ diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py index ae707ab14355..0ded4a883bb9 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -117,7 +117,7 @@ def validate(self): self.validate_expense_account() self.set_against_expense_account() self.validate_write_off_account() - self.validate_multiple_billing("Purchase Receipt", "pr_detail", "amount", "items") + self.validate_multiple_billing("Purchase Receipt", "pr_detail", "amount") self.create_remarks() self.set_status() self.validate_purchase_receipt_if_update_stock() @@ -232,7 +232,7 @@ def validate_with_previous_doc(self): ) if ( - cint(frappe.db.get_single_value("Buying Settings", "maintain_same_rate")) + cint(frappe.get_cached_value("Buying Settings", "None", "maintain_same_rate")) and not self.is_return and not self.is_internal_supplier ): @@ -581,6 +581,7 @@ def get_gl_entries(self, warehouse_account=None): self.make_supplier_gl_entry(gl_entries) self.make_item_gl_entries(gl_entries) + self.make_precision_loss_gl_entry(gl_entries) if self.check_asset_cwip_enabled(): self.get_asset_gl_entry(gl_entries) @@ -975,6 +976,28 @@ def make_item_gl_entries(self, gl_entries): item.item_tax_amount, item.precision("item_tax_amount") ) + def make_precision_loss_gl_entry(self, gl_entries): + round_off_account, round_off_cost_center = get_round_off_account_and_cost_center( + self.company, "Purchase Invoice", self.name + ) + + precision_loss = self.get("base_net_total") - flt( + self.get("net_total") * self.conversion_rate, self.precision("net_total") + ) + + if precision_loss: + gl_entries.append( + self.get_gl_dict( + { + "account": round_off_account, + "against": self.supplier, + "credit": precision_loss, + "cost_center": self.cost_center or round_off_cost_center, + "remarks": _("Net total calculation precision loss"), + } + ) + ) + def get_asset_gl_entry(self, gl_entries): arbnb_account = self.get_company_default("asset_received_but_not_billed") eiiav_account = self.get_company_default("expenses_included_in_asset_valuation") diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js index 47e3f9b93548..56e412b297c9 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js @@ -93,9 +93,12 @@ erpnext.accounts.SalesInvoiceController = class SalesInvoiceController extends e if (doc.docstatus == 1 && doc.outstanding_amount!=0 && !(cint(doc.is_return) && doc.return_against)) { - cur_frm.add_custom_button(__('Payment'), - this.make_payment_entry, __('Create')); - cur_frm.page.set_inner_btn_group_as_primary(__('Create')); + this.frm.add_custom_button( + __('Payment'), + () => this.make_payment_entry(), + __('Create') + ); + this.frm.page.set_inner_btn_group_as_primary(__('Create')); } if(doc.docstatus==1 && !doc.is_return) { diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json index 9a5b42be4bb7..9a0d71a3850b 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json @@ -120,6 +120,7 @@ "account_for_change_amount", "advances_section", "allocate_advances_automatically", + "only_include_allocated_payments", "get_advances", "advances", "write_off_section", @@ -2126,6 +2127,13 @@ "label": "Repost Required", "no_copy": 1, "read_only": 1 + }, + { + "depends_on": "allocate_advances_automatically", + "description": "Advance payments allocated against orders will only be fetched", + "fieldname": "only_include_allocated_payments", + "fieldtype": "Check", + "label": "Only Include Allocated Payments" } ], "icon": "fa fa-file-text", @@ -2138,7 +2146,7 @@ "link_fieldname": "consolidated_invoice" } ], - "modified": "2023-03-13 11:43:15.883055", + "modified": "2023-04-03 22:55:14.206473", "modified_by": "Administrator", "module": "Accounts", "name": "Sales Invoice", diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index f5be4c7a3f3e..7af98ddf9340 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -145,7 +145,7 @@ def validate(self): self.set_against_income_account() self.validate_time_sheets_are_submitted() - self.validate_multiple_billing("Delivery Note", "dn_detail", "amount", "items") + self.validate_multiple_billing("Delivery Note", "dn_detail", "amount") if not self.is_return: self.validate_serial_numbers() else: diff --git a/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py index 57d80492ae0e..f21c94b4940c 100644 --- a/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py +++ b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py @@ -25,6 +25,7 @@ def get_data(filters): ["posting_date", "<=", filters.get("to_date")], ["against_voucher_type", "=", "Asset"], ["account", "in", depreciation_accounts], + ["is_cancelled", "=", 0], ] if filters.get("asset"): diff --git a/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py b/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py index 449ebdcd9240..306af722ba84 100644 --- a/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py +++ b/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py @@ -4,6 +4,7 @@ import frappe from frappe import _ +from frappe.query_builder.custom import ConstantColumn from frappe.utils import getdate, nowdate @@ -91,4 +92,65 @@ def get_entries(filters): as_list=1, ) - return sorted(journal_entries + payment_entries, key=lambda k: k[2] or getdate(nowdate())) + # Loan Disbursement + loan_disbursement = frappe.qb.DocType("Loan Disbursement") + + query = ( + frappe.qb.from_(loan_disbursement) + .select( + ConstantColumn("Loan Disbursement").as_("payment_document_type"), + loan_disbursement.name.as_("payment_entry"), + loan_disbursement.disbursement_date.as_("posting_date"), + loan_disbursement.reference_number.as_("cheque_no"), + loan_disbursement.clearance_date.as_("clearance_date"), + loan_disbursement.applicant.as_("against"), + -loan_disbursement.disbursed_amount.as_("amount"), + ) + .where(loan_disbursement.docstatus == 1) + .where(loan_disbursement.disbursement_date >= filters["from_date"]) + .where(loan_disbursement.disbursement_date <= filters["to_date"]) + .where(loan_disbursement.disbursement_account == filters["account"]) + .orderby(loan_disbursement.disbursement_date, order=frappe.qb.desc) + .orderby(loan_disbursement.name, order=frappe.qb.desc) + ) + + if filters.get("from_date"): + query = query.where(loan_disbursement.disbursement_date >= filters["from_date"]) + if filters.get("to_date"): + query = query.where(loan_disbursement.disbursement_date <= filters["to_date"]) + + loan_disbursements = query.run(as_list=1) + + # Loan Repayment + loan_repayment = frappe.qb.DocType("Loan Repayment") + + query = ( + frappe.qb.from_(loan_repayment) + .select( + ConstantColumn("Loan Repayment").as_("payment_document_type"), + loan_repayment.name.as_("payment_entry"), + loan_repayment.posting_date.as_("posting_date"), + loan_repayment.reference_number.as_("cheque_no"), + loan_repayment.clearance_date.as_("clearance_date"), + loan_repayment.applicant.as_("against"), + loan_repayment.amount_paid.as_("amount"), + ) + .where(loan_repayment.docstatus == 1) + .where(loan_repayment.posting_date >= filters["from_date"]) + .where(loan_repayment.posting_date <= filters["to_date"]) + .where(loan_repayment.payment_account == filters["account"]) + .orderby(loan_repayment.posting_date, order=frappe.qb.desc) + .orderby(loan_repayment.name, order=frappe.qb.desc) + ) + + if filters.get("from_date"): + query = query.where(loan_repayment.posting_date >= filters["from_date"]) + if filters.get("to_date"): + query = query.where(loan_repayment.posting_date <= filters["to_date"]) + + loan_repayments = query.run(as_list=1) + + return sorted( + journal_entries + payment_entries + loan_disbursements + loan_repayments, + key=lambda k: k[2] or getdate(nowdate()), + ) diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js index 21d846f68062..0923d0093f97 100644 --- a/erpnext/assets/doctype/asset/asset.js +++ b/erpnext/assets/doctype/asset/asset.js @@ -469,6 +469,9 @@ frappe.ui.form.on('Asset', { } else { frm.set_value('purchase_date', purchase_doc.posting_date); } + if (!frm.doc.is_existing_asset && !frm.doc.available_for_use_date) { + frm.set_value('available_for_use_date', frm.doc.purchase_date); + } const item = purchase_doc.items.find(item => item.item_code === frm.doc.item_code); if (!item) { doctype_field = frappe.scrub(doctype) diff --git a/erpnext/assets/doctype/asset/asset.json b/erpnext/assets/doctype/asset/asset.json index d581f52153e7..3e93f0f03e3c 100644 --- a/erpnext/assets/doctype/asset/asset.json +++ b/erpnext/assets/doctype/asset/asset.json @@ -81,6 +81,9 @@ "options": "ACC-ASS-.YYYY.-" }, { + "depends_on": "item_code", + "fetch_from": "item_code.item_name", + "fetch_if_empty": 1, "fieldname": "asset_name", "fieldtype": "Data", "in_list_view": 1, @@ -527,7 +530,7 @@ "table_fieldname": "accounts" } ], - "modified": "2023-01-25 17:45:48.649543", + "modified": "2023-03-30 15:07:41.542374", "modified_by": "Administrator", "module": "Assets", "name": "Asset", @@ -571,4 +574,4 @@ "states": [], "title_field": "asset_name", "track_changes": 1 -} \ No newline at end of file +} diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 47b5f75e6686..fe1fd98aa098 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -294,17 +294,42 @@ def _make_depreciation_schedule(self, finance_book, start, date_of_disposal): if has_pro_rata: number_of_pending_depreciations += 1 + has_wdv_or_dd_non_yearly_pro_rata = False + if ( + finance_book.depreciation_method in ("Written Down Value", "Double Declining Balance") + and cint(finance_book.frequency_of_depreciation) != 12 + ): + has_wdv_or_dd_non_yearly_pro_rata = self.check_is_pro_rata( + finance_book, wdv_or_dd_non_yearly=True + ) + skip_row = False should_get_last_day = is_last_day_of_the_month(finance_book.depreciation_start_date) + depreciation_amount = 0 + for n in range(start[finance_book.idx - 1], number_of_pending_depreciations): # If depreciation is already completed (for double declining balance) if skip_row: continue - depreciation_amount = get_depreciation_amount(self, value_after_depreciation, finance_book) + if n > 0 and len(self.get("schedules")) > n - 1: + prev_depreciation_amount = self.get("schedules")[n - 1].depreciation_amount + else: + prev_depreciation_amount = 0 + + depreciation_amount = get_depreciation_amount( + self, + value_after_depreciation, + finance_book, + n, + prev_depreciation_amount, + has_wdv_or_dd_non_yearly_pro_rata, + ) - if not has_pro_rata or n < cint(number_of_pending_depreciations) - 1: + if not has_pro_rata or ( + n < (cint(number_of_pending_depreciations) - 1) or number_of_pending_depreciations == 2 + ): schedule_date = add_months( finance_book.depreciation_start_date, n * cint(finance_book.frequency_of_depreciation) ) @@ -320,7 +345,10 @@ def _make_depreciation_schedule(self, finance_book, start, date_of_disposal): if date_of_disposal: from_date = self.get_from_date(finance_book.finance_book) depreciation_amount, days, months = self.get_pro_rata_amt( - finance_book, depreciation_amount, from_date, date_of_disposal + finance_book, + depreciation_amount, + from_date, + date_of_disposal, ) if depreciation_amount > 0: @@ -335,12 +363,20 @@ def _make_depreciation_schedule(self, finance_book, start, date_of_disposal): break # For first row - if has_pro_rata and not self.opening_accumulated_depreciation and n == 0: + if ( + (has_pro_rata or has_wdv_or_dd_non_yearly_pro_rata) + and not self.opening_accumulated_depreciation + and n == 0 + ): from_date = add_days( self.available_for_use_date, -1 ) # needed to calc depr amount for available_for_use_date too depreciation_amount, days, months = self.get_pro_rata_amt( - finance_book, depreciation_amount, from_date, finance_book.depreciation_start_date + finance_book, + depreciation_amount, + from_date, + finance_book.depreciation_start_date, + has_wdv_or_dd_non_yearly_pro_rata, ) # For first depr schedule date will be the start date @@ -359,7 +395,11 @@ def _make_depreciation_schedule(self, finance_book, start, date_of_disposal): depreciation_amount_without_pro_rata = depreciation_amount depreciation_amount, days, months = self.get_pro_rata_amt( - finance_book, depreciation_amount, schedule_date, self.to_date + finance_book, + depreciation_amount, + schedule_date, + self.to_date, + has_wdv_or_dd_non_yearly_pro_rata, ) depreciation_amount = self.get_adjusted_depreciation_amount( @@ -479,28 +519,37 @@ def get_from_date(self, finance_book): return add_days(self.available_for_use_date, -1) # if it returns True, depreciation_amount will not be equal for the first and last rows - def check_is_pro_rata(self, row): + def check_is_pro_rata(self, row, wdv_or_dd_non_yearly=False): has_pro_rata = False # if not existing asset, from_date = available_for_use_date # otherwise, if number_of_depreciations_booked = 2, available_for_use_date = 01/01/2020 and frequency_of_depreciation = 12 # from_date = 01/01/2022 - from_date = self.get_modified_available_for_use_date(row) + from_date = self.get_modified_available_for_use_date(row, wdv_or_dd_non_yearly) days = date_diff(row.depreciation_start_date, from_date) + 1 - # if frequency_of_depreciation is 12 months, total_days = 365 - total_days = get_total_days(row.depreciation_start_date, row.frequency_of_depreciation) + if wdv_or_dd_non_yearly: + total_days = get_total_days(row.depreciation_start_date, 12) + else: + # if frequency_of_depreciation is 12 months, total_days = 365 + total_days = get_total_days(row.depreciation_start_date, row.frequency_of_depreciation) if days < total_days: has_pro_rata = True return has_pro_rata - def get_modified_available_for_use_date(self, row): - return add_months( - self.available_for_use_date, - (self.number_of_depreciations_booked * row.frequency_of_depreciation), - ) + def get_modified_available_for_use_date(self, row, wdv_or_dd_non_yearly=False): + if wdv_or_dd_non_yearly: + return add_months( + self.available_for_use_date, + (self.number_of_depreciations_booked * 12), + ) + else: + return add_months( + self.available_for_use_date, + (self.number_of_depreciations_booked * row.frequency_of_depreciation), + ) def validate_asset_finance_books(self, row): if flt(row.expected_value_after_useful_life) >= flt(self.gross_purchase_amount): @@ -903,7 +952,12 @@ def get_depreciation_rate(self, args, on_validate=False): float_precision = cint(frappe.db.get_default("float_precision")) or 2 if args.get("depreciation_method") == "Double Declining Balance": - return 200.0 / args.get("total_number_of_depreciations") + return 200.0 / ( + ( + flt(args.get("total_number_of_depreciations"), 2) * flt(args.get("frequency_of_depreciation")) + ) + / 12 + ) if args.get("depreciation_method") == "Written Down Value": if ( @@ -920,14 +974,29 @@ def get_depreciation_rate(self, args, on_validate=False): else: value = flt(args.get("expected_value_after_useful_life")) / flt(self.gross_purchase_amount) - depreciation_rate = math.pow(value, 1.0 / flt(args.get("total_number_of_depreciations"), 2)) + depreciation_rate = math.pow( + value, + 1.0 + / ( + ( + flt(args.get("total_number_of_depreciations"), 2) + * flt(args.get("frequency_of_depreciation")) + ) + / 12 + ), + ) return flt((100 * (1 - depreciation_rate)), float_precision) - def get_pro_rata_amt(self, row, depreciation_amount, from_date, to_date): + def get_pro_rata_amt( + self, row, depreciation_amount, from_date, to_date, has_wdv_or_dd_non_yearly_pro_rata=False + ): days = date_diff(to_date, from_date) months = month_diff(to_date, from_date) - total_days = get_total_days(to_date, row.frequency_of_depreciation) + if has_wdv_or_dd_non_yearly_pro_rata: + total_days = get_total_days(to_date, 12) + else: + total_days = get_total_days(to_date, row.frequency_of_depreciation) return (depreciation_amount * flt(days)) / flt(total_days), days, months @@ -1184,27 +1253,72 @@ def get_total_days(date, frequency): @erpnext.allow_regional -def get_depreciation_amount(asset, depreciable_value, row): +def get_depreciation_amount( + asset, + depreciable_value, + row, + schedule_idx=0, + prev_depreciation_amount=0, + has_wdv_or_dd_non_yearly_pro_rata=False, +): if row.depreciation_method in ("Straight Line", "Manual"): - # if the Depreciation Schedule is being modified after Asset Repair due to increase in asset life and value - if asset.flags.increase_in_asset_life: - depreciation_amount = ( - flt(row.value_after_depreciation) - flt(row.expected_value_after_useful_life) - ) / (date_diff(asset.to_date, asset.available_for_use_date) / 365) - # if the Depreciation Schedule is being modified after Asset Repair due to increase in asset value - elif asset.flags.increase_in_asset_value_due_to_repair: - depreciation_amount = ( - flt(row.value_after_depreciation) - flt(row.expected_value_after_useful_life) - ) / flt(row.total_number_of_depreciations) - # if the Depreciation Schedule is being prepared for the first time - else: - depreciation_amount = ( - flt(asset.gross_purchase_amount) - flt(row.expected_value_after_useful_life) - ) / flt(row.total_number_of_depreciations) + return get_straight_line_or_manual_depr_amount(asset, row) else: - depreciation_amount = flt(depreciable_value * (flt(row.rate_of_depreciation) / 100)) + return get_wdv_or_dd_depr_amount( + depreciable_value, + row.rate_of_depreciation, + row.frequency_of_depreciation, + schedule_idx, + prev_depreciation_amount, + has_wdv_or_dd_non_yearly_pro_rata, + ) + - return depreciation_amount +def get_straight_line_or_manual_depr_amount(asset, row): + # if the Depreciation Schedule is being modified after Asset Repair due to increase in asset life and value + if asset.flags.increase_in_asset_life: + return (flt(row.value_after_depreciation) - flt(row.expected_value_after_useful_life)) / ( + date_diff(asset.to_date, asset.available_for_use_date) / 365 + ) + # if the Depreciation Schedule is being modified after Asset Repair due to increase in asset value + elif asset.flags.increase_in_asset_value_due_to_repair: + return (flt(row.value_after_depreciation) - flt(row.expected_value_after_useful_life)) / flt( + row.total_number_of_depreciations + ) + # if the Depreciation Schedule is being prepared for the first time + else: + return (flt(asset.gross_purchase_amount) - flt(row.expected_value_after_useful_life)) / flt( + row.total_number_of_depreciations + ) + + +def get_wdv_or_dd_depr_amount( + depreciable_value, + rate_of_depreciation, + frequency_of_depreciation, + schedule_idx, + prev_depreciation_amount, + has_wdv_or_dd_non_yearly_pro_rata, +): + if cint(frequency_of_depreciation) == 12: + return flt(depreciable_value) * (flt(rate_of_depreciation) / 100) + else: + if has_wdv_or_dd_non_yearly_pro_rata: + if schedule_idx == 0: + return flt(depreciable_value) * (flt(rate_of_depreciation) / 100) + elif schedule_idx % (12 / cint(frequency_of_depreciation)) == 1: + return ( + flt(depreciable_value) * flt(frequency_of_depreciation) * (flt(rate_of_depreciation) / 1200) + ) + else: + return prev_depreciation_amount + else: + if schedule_idx % (12 / cint(frequency_of_depreciation)) == 0: + return ( + flt(depreciable_value) * flt(frequency_of_depreciation) * (flt(rate_of_depreciation) / 1200) + ) + else: + return prev_depreciation_amount @frappe.whitelist() diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py index e72e0afb9ce4..74625890a697 100644 --- a/erpnext/assets/doctype/asset/depreciation.py +++ b/erpnext/assets/doctype/asset/depreciation.py @@ -218,10 +218,16 @@ def notify_depr_entry_posting_error(failed_asset_names): asset_links = get_comma_separated_asset_links(failed_asset_names) message = ( - _("Hi,") - + "
" - + _("The following assets have failed to post depreciation entries: {0}").format(asset_links) + _("Hello,") + + "

" + + _("The following assets have failed to automatically post depreciation entries: {0}").format( + asset_links + ) + "." + + "

" + + _( + "Please raise a support ticket and share this email, or forward this email to your development team so that they can find the issue in the developer console by manually creating the depreciation entry via the asset's depreciation schedule table." + ) ) frappe.sendmail(recipients=recipients, subject=subject, message=message) diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 71f578c67030..7eaa4bf997a8 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -818,12 +818,12 @@ def test_monthly_depreciation_by_wdv_method(self): ) expected_schedules = [ - ["2022-02-28", 647.25, 647.25], - ["2022-03-31", 1210.71, 1857.96], - ["2022-04-30", 1053.99, 2911.95], - ["2022-05-31", 917.55, 3829.5], - ["2022-06-30", 798.77, 4628.27], - ["2022-07-15", 371.73, 5000.0], + ["2022-02-28", 310.89, 310.89], + ["2022-03-31", 654.45, 965.34], + ["2022-04-30", 654.45, 1619.79], + ["2022-05-31", 654.45, 2274.24], + ["2022-06-30", 654.45, 2928.69], + ["2022-07-15", 2071.31, 5000.0], ] schedules = [ diff --git a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py index 0028d84508d8..83031415ec3d 100644 --- a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py +++ b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py @@ -84,6 +84,8 @@ def calculate_next_due_date( next_due_date = add_years(start_date, 1) if periodicity == "2 Yearly": next_due_date = add_years(start_date, 2) + if periodicity == "3 Yearly": + next_due_date = add_years(start_date, 3) if periodicity == "Quarterly": next_due_date = add_months(start_date, 3) if end_date and ( diff --git a/erpnext/assets/doctype/asset_maintenance_task/asset_maintenance_task.json b/erpnext/assets/doctype/asset_maintenance_task/asset_maintenance_task.json index 20963e3fdc7a..b7cb23e66878 100644 --- a/erpnext/assets/doctype/asset_maintenance_task/asset_maintenance_task.json +++ b/erpnext/assets/doctype/asset_maintenance_task/asset_maintenance_task.json @@ -1,664 +1,156 @@ { - "allow_copy": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "", - "beta": 0, - "creation": "2017-10-20 07:10:55.903571", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "Document", - "editable_grid": 1, - "engine": "InnoDB", + "actions": [], + "creation": "2017-10-20 07:10:55.903571", + "doctype": "DocType", + "document_type": "Document", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "maintenance_task", + "maintenance_type", + "column_break_2", + "maintenance_status", + "section_break_2", + "start_date", + "periodicity", + "column_break_4", + "end_date", + "certificate_required", + "section_break_9", + "assign_to", + "column_break_10", + "assign_to_name", + "section_break_10", + "next_due_date", + "column_break_14", + "last_completion_date", + "section_break_7", + "description" + ], "fields": [ { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "maintenance_task", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 1, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 1, - "label": "Maintenance Task", - "length": 0, - "no_copy": 0, - "options": "", - "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": "maintenance_task", + "fieldtype": "Data", + "in_filter": 1, + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Maintenance Task", + "reqd": 1 + }, + { + "fieldname": "maintenance_type", + "fieldtype": "Select", + "label": "Maintenance Type", + "options": "Preventive Maintenance\nCalibration" + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "fieldname": "maintenance_status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Maintenance Status", + "options": "Planned\nOverdue\nCancelled", + "reqd": 1 + }, + { + "fieldname": "section_break_2", + "fieldtype": "Section Break" + }, + { + "default": "Today", + "fieldname": "start_date", + "fieldtype": "Date", + "label": "Start Date", + "reqd": 1 + }, + { + "fieldname": "periodicity", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Periodicity", + "options": "\nDaily\nWeekly\nMonthly\nQuarterly\nYearly\n2 Yearly\n3 Yearly", + "reqd": 1 + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fieldname": "end_date", + "fieldtype": "Date", + "label": "End Date" + }, + { + "default": "0", + "fieldname": "certificate_required", + "fieldtype": "Check", + "label": "Certificate Required", + "search_index": 1, + "set_only_once": 1 + }, + { + "fieldname": "section_break_9", + "fieldtype": "Section Break" + }, + { + "fieldname": "assign_to", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Assign To", + "options": "User" + }, + { + "fieldname": "column_break_10", + "fieldtype": "Column Break" + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "maintenance_type", - "fieldtype": "Select", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Maintenance Type", - "length": 0, - "no_copy": 0, - "options": "Preventive Maintenance\nCalibration", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_2", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "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": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "", - "fieldname": "maintenance_status", - "fieldtype": "Select", - "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": "Maintenance Status", - "length": 0, - "no_copy": 0, - "options": "Planned\nOverdue\nCancelled", - "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 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_2", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "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": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "Today", - "fieldname": "start_date", - "fieldtype": "Date", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Start Date", - "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 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "periodicity", - "fieldtype": "Select", - "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": "Periodicity", - "length": 0, - "no_copy": 0, - "options": "\nDaily\nWeekly\nMonthly\nQuarterly\nYearly\n2 Yearly", - "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 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_4", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "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": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "end_date", - "fieldtype": "Date", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "End Date", - "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": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "certificate_required", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Certificate Required", - "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": 0, - "search_index": 1, - "set_only_once": 1, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_9", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "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": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "assign_to", - "fieldtype": "Link", - "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": "Assign To", - "length": 0, - "no_copy": 0, - "options": "User", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_10", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "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": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, "fetch_from": "assign_to.full_name", - "fieldname": "assign_to_name", - "fieldtype": "Read Only", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Assign to Name", - "length": 0, - "no_copy": 0, - "options": "", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_10", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "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": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "next_due_date", - "fieldtype": "Date", - "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": "Next Due Date", - "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": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_14", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "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": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "last_completion_date", - "fieldtype": "Date", - "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": "Last Completion Date", - "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": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_7", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "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": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "description", - "fieldtype": "Text Editor", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Description", - "length": 0, - "no_copy": 0, - "options": "", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 + "fieldname": "assign_to_name", + "fieldtype": "Read Only", + "label": "Assign to Name" + }, + { + "fieldname": "section_break_10", + "fieldtype": "Section Break" + }, + { + "fieldname": "next_due_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Next Due Date" + }, + { + "fieldname": "column_break_14", + "fieldtype": "Column Break" + }, + { + "fieldname": "last_completion_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Last Completion Date" + }, + { + "fieldname": "section_break_7", + "fieldtype": "Section Break" + }, + { + "fieldname": "description", + "fieldtype": "Text Editor", + "label": "Description" } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "max_attachments": 0, - "modified": "2018-06-18 16:12:04.330021", - "modified_by": "Administrator", - "module": "Assets", - "name": "Asset Maintenance Task", - "name_case": "", - "owner": "Administrator", - "permissions": [], - "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 + ], + "istable": 1, + "links": [], + "modified": "2023-03-23 07:03:07.113452", + "modified_by": "Administrator", + "module": "Assets", + "name": "Asset Maintenance Task", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC" } \ No newline at end of file diff --git a/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.js b/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.js index ae0e1bda0204..d07f40cdf422 100644 --- a/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.js +++ b/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.js @@ -49,7 +49,7 @@ frappe.ui.form.on('Asset Value Adjustment', { frm.call({ method: "erpnext.assets.doctype.asset.asset.get_asset_value_after_depreciation", args: { - asset: frm.doc.asset, + asset_name: frm.doc.asset, finance_book: frm.doc.finance_book }, callback: function(r) { diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js index 47089f7d8503..c6c9f1f98a39 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.js +++ b/erpnext/buying/doctype/purchase_order/purchase_order.js @@ -236,7 +236,11 @@ erpnext.buying.PurchaseOrderController = class PurchaseOrderController extends e this.make_purchase_invoice, __('Create')); if(flt(doc.per_billed) < 100 && doc.status != "Delivered") { - cur_frm.add_custom_button(__('Payment'), cur_frm.cscript.make_payment_entry, __('Create')); + this.frm.add_custom_button( + __('Payment'), + () => this.make_payment_entry(), + __('Create') + ); } if(flt(doc.per_billed) < 100) { 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 7927beb8233b..4590f8c3d937 100644 --- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py +++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py @@ -113,7 +113,10 @@ def send_to_supplier(self): def get_link(self): # RFQ link for supplier portal - return get_url("/app/request-for-quotation/" + self.name) + route = frappe.db.get_value( + "Portal Menu Item", {"reference_doctype": "Request for Quotation"}, ["route"] + ) + return get_url("/app/{0}/".format(route) + self.name) def update_supplier_part_no(self, supplier): self.vendor = supplier diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index 3705fcf4990d..a347323e358e 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -515,6 +515,8 @@ def set_missing_item_details(self, for_validate=False): parent_dict.update({"customer": parent_dict.get("party_name")}) self.pricing_rules = [] + basic_item_details_map = {} + for item in self.get("items"): if item.get("item_code"): args = parent_dict.copy() @@ -533,7 +535,17 @@ def set_missing_item_details(self, for_validate=False): if self.get("is_subcontracted"): args["is_subcontracted"] = self.is_subcontracted - ret = get_item_details(args, self, for_validate=True, overwrite_warehouse=False) + basic_details = basic_item_details_map.get(item.item_code) + ret, basic_item_details = get_item_details( + args, + self, + for_validate=True, + overwrite_warehouse=False, + return_basic_details=True, + basic_details=basic_details, + ) + + basic_item_details_map.setdefault(item.item_code, basic_item_details) for fieldname, value in ret.items(): if item.meta.get_field(fieldname) and value is not None: @@ -833,7 +845,9 @@ def get_shipping_address(self): def set_advances(self): """Returns list of advances against Account, Party, Reference""" - res = self.get_advance_entries() + res = self.get_advance_entries( + include_unallocated=not cint(self.get("only_include_allocated_payments")) + ) self.set("advances", []) advance_allocated = 0 @@ -1232,7 +1246,7 @@ def make_discount_gl_entries(self, gl_entries): ) ) - def validate_multiple_billing(self, ref_dt, item_ref_dn, based_on, parentfield): + def validate_multiple_billing(self, ref_dt, item_ref_dn, based_on): from erpnext.controllers.status_updater import get_allowance_for item_allowance = {} @@ -1245,17 +1259,20 @@ def validate_multiple_billing(self, ref_dt, item_ref_dn, based_on, parentfield): total_overbilled_amt = 0.0 + reference_names = [d.get(item_ref_dn) for d in self.get("items") if d.get(item_ref_dn)] + reference_details = self.get_billing_reference_details( + reference_names, ref_dt + " Item", based_on + ) + for item in self.get("items"): if not item.get(item_ref_dn): continue - ref_amt = flt( - frappe.db.get_value(ref_dt + " Item", item.get(item_ref_dn), based_on), - self.precision(based_on, item), - ) + ref_amt = flt(reference_details.get(item.get(item_ref_dn)), self.precision(based_on, item)) + if not ref_amt: frappe.msgprint( - _("System will not check overbilling since amount for Item {0} in {1} is zero").format( + _("System will not check over billing since amount for Item {0} in {1} is zero").format( item.item_code, ref_dt ), title=_("Warning"), @@ -1302,6 +1319,16 @@ def validate_multiple_billing(self, ref_dt, item_ref_dn, based_on, parentfield): alert=True, ) + def get_billing_reference_details(self, reference_names, reference_doctype, based_on): + return frappe._dict( + frappe.get_all( + reference_doctype, + filters={"name": ("in", reference_names)}, + fields=["name", based_on], + as_list=1, + ) + ) + def get_billed_amount_for_item(self, item, item_ref_dn, based_on): """ Returns Sum of Amount of diff --git a/erpnext/crm/report/lead_details/lead_details.py b/erpnext/crm/report/lead_details/lead_details.py index 8660c7331038..7b8c43b2d65f 100644 --- a/erpnext/crm/report/lead_details/lead_details.py +++ b/erpnext/crm/report/lead_details/lead_details.py @@ -98,7 +98,7 @@ def get_data(filters): `tabAddress`.name=`tabDynamic Link`.parent) WHERE company = %(company)s - AND `tabLead`.creation BETWEEN %(from_date)s AND %(to_date)s + AND DATE(`tabLead`.creation) BETWEEN %(from_date)s AND %(to_date)s {conditions} ORDER BY `tabLead`.creation asc """.format( diff --git a/erpnext/crm/report/lost_opportunity/lost_opportunity.py b/erpnext/crm/report/lost_opportunity/lost_opportunity.py index 254511c92fa2..b37cfa449fee 100644 --- a/erpnext/crm/report/lost_opportunity/lost_opportunity.py +++ b/erpnext/crm/report/lost_opportunity/lost_opportunity.py @@ -82,7 +82,7 @@ def get_data(filters): {join} WHERE `tabOpportunity`.status = 'Lost' and `tabOpportunity`.company = %(company)s - AND `tabOpportunity`.modified BETWEEN %(from_date)s AND %(to_date)s + AND DATE(`tabOpportunity`.modified) BETWEEN %(from_date)s AND %(to_date)s {conditions} GROUP BY `tabOpportunity`.name diff --git a/erpnext/e_commerce/doctype/website_item/test_website_item.py b/erpnext/e_commerce/doctype/website_item/test_website_item.py index bbe04d5514d8..019a5f9ee4f4 100644 --- a/erpnext/e_commerce/doctype/website_item/test_website_item.py +++ b/erpnext/e_commerce/doctype/website_item/test_website_item.py @@ -199,8 +199,14 @@ def test_website_item_breadcrumbs(self): breadcrumbs = get_parent_item_groups(item.item_group) + settings = frappe.get_cached_doc("E Commerce Settings") + if settings.enable_field_filters: + base_breadcrumb = "Shop by Category" + else: + base_breadcrumb = "All Products" + self.assertEqual(breadcrumbs[0]["name"], "Home") - self.assertEqual(breadcrumbs[1]["name"], "All Products") + self.assertEqual(breadcrumbs[1]["name"], base_breadcrumb) self.assertEqual(breadcrumbs[2]["name"], "_Test Item Group B") # parent item group self.assertEqual(breadcrumbs[3]["name"], "_Test Item Group B - 1") diff --git a/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.py b/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.py index f3aa6a379355..e57a30a88e18 100644 --- a/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.py +++ b/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.py @@ -220,7 +220,7 @@ def get_transactions(bank, bank_account=None, start_date=None, end_date=None): if e.code == "ITEM_LOGIN_REQUIRED": msg = _("There was an error syncing transactions.") + " " msg += _("Please refresh or reset the Plaid linking of the Bank {}.").format(bank) + " " - frappe.log_error(msg, title=_("Plaid Link Refresh Required")) + frappe.log_error(message=msg, title=_("Plaid Link Refresh Required")) return transactions diff --git a/erpnext/hooks.py b/erpnext/hooks.py index f1ee370e97ee..c4032596f47a 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -30,6 +30,10 @@ override_doctype_class = {"Address": "erpnext.accounts.custom.address.ERPNextAddress"} +override_whitelisted_methods = { + "frappe.www.contact.send_message": "erpnext.templates.utils.send_message" +} + welcome_email = "erpnext.setup.utils.welcome_email" # setup wizard diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py index 619a415c8bc9..a085af859a4b 100644 --- a/erpnext/manufacturing/doctype/bom/bom.py +++ b/erpnext/manufacturing/doctype/bom/bom.py @@ -943,7 +943,8 @@ def get_valuation_rate(data): 2) If no value, get last valuation rate from SLE 3) If no value, get valuation rate from Item """ - from frappe.query_builder.functions import Sum + from frappe.query_builder.functions import Count, IfNull, Sum + from pypika import Case item_code, company = data.get("item_code"), data.get("company") valuation_rate = 0.0 @@ -954,7 +955,14 @@ def get_valuation_rate(data): frappe.qb.from_(bin_table) .join(wh_table) .on(bin_table.warehouse == wh_table.name) - .select((Sum(bin_table.stock_value) / Sum(bin_table.actual_qty)).as_("valuation_rate")) + .select( + Case() + .when( + Count(bin_table.name) > 0, IfNull(Sum(bin_table.stock_value) / Sum(bin_table.actual_qty), 0.0) + ) + .else_(None) + .as_("valuation_rate") + ) .where((bin_table.item_code == item_code) & (wh_table.company == company)) ).run(as_dict=True)[0] diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan.json b/erpnext/manufacturing/doctype/production_plan/production_plan.json index 2624daa41e2d..fdaa4a2a1d46 100644 --- a/erpnext/manufacturing/doctype/production_plan/production_plan.json +++ b/erpnext/manufacturing/doctype/production_plan/production_plan.json @@ -344,6 +344,7 @@ { "fieldname": "prod_plan_references", "fieldtype": "Table", + "hidden": 1, "label": "Production Plan Item Reference", "options": "Production Plan Item Reference" }, @@ -397,7 +398,7 @@ "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], - "modified": "2022-11-26 14:51:08.774372", + "modified": "2023-03-31 10:30:48.118932", "modified_by": "Administrator", "module": "Manufacturing", "name": "Production Plan", diff --git a/erpnext/manufacturing/doctype/production_plan_item_reference/production_plan_item_reference.json b/erpnext/manufacturing/doctype/production_plan_item_reference/production_plan_item_reference.json index 84dee4ad284c..15ef20794cb8 100644 --- a/erpnext/manufacturing/doctype/production_plan_item_reference/production_plan_item_reference.json +++ b/erpnext/manufacturing/doctype/production_plan_item_reference/production_plan_item_reference.json @@ -28,7 +28,7 @@ "fieldname": "qty", "fieldtype": "Data", "in_list_view": 1, - "label": "qty" + "label": "Qty" }, { "fieldname": "item_reference", @@ -40,7 +40,7 @@ "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2021-05-07 17:03:49.707487", + "modified": "2023-03-31 10:30:14.604051", "modified_by": "Administrator", "module": "Manufacturing", "name": "Production Plan Item Reference", @@ -48,5 +48,6 @@ "permissions": [], "sort_field": "modified", "sort_order": "DESC", + "states": [], "track_changes": 1 } \ No newline at end of file diff --git a/erpnext/public/js/controllers/accounts.js b/erpnext/public/js/controllers/accounts.js index a07f75d1c5d4..d943126018a6 100644 --- a/erpnext/public/js/controllers/accounts.js +++ b/erpnext/public/js/controllers/accounts.js @@ -55,6 +55,14 @@ frappe.ui.form.on(cur_frm.doctype, { }, allocate_advances_automatically: function(frm) { + frm.trigger('fetch_advances'); + }, + + only_include_allocated_payments: function(frm) { + frm.trigger('fetch_advances'); + }, + + fetch_advances: function(frm) { if(frm.doc.allocate_advances_automatically) { frappe.call({ doc: frm.doc, diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index 8e57ebd36774..8efc47d18e5d 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -135,7 +135,7 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { } else { // allow for '0' qty on Credit/Debit notes - let qty = item.qty || me.frm.doc.is_debit_note ? 1 : -1; + let qty = item.qty || (me.frm.doc.is_debit_note ? 1 : -1); item.net_amount = item.amount = flt(item.rate * qty, precision("amount", item)); } diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index f7620db2f1e4..07d1955bfafd 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -1897,20 +1897,60 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe } make_payment_entry() { + let via_journal_entry = this.frm.doc.__onload && this.frm.doc.__onload.make_payment_via_journal_entry; + if(this.has_discount_in_schedule() && !via_journal_entry) { + // If early payment discount is applied, ask user for reference date + this.prompt_user_for_reference_date(); + } else { + this.make_mapped_payment_entry(); + } + } + + make_mapped_payment_entry(args) { + var me = this; + args = args || { "dt": this.frm.doc.doctype, "dn": this.frm.doc.name }; return frappe.call({ - method: cur_frm.cscript.get_method_for_payment(), - args: { - "dt": cur_frm.doc.doctype, - "dn": cur_frm.doc.name - }, + method: me.get_method_for_payment(), + args: args, callback: function(r) { var doclist = frappe.model.sync(r.message); frappe.set_route("Form", doclist[0].doctype, doclist[0].name); - // cur_frm.refresh_fields() } }); } + prompt_user_for_reference_date(){ + var me = this; + frappe.prompt({ + label: __("Cheque/Reference Date"), + fieldname: "reference_date", + fieldtype: "Date", + reqd: 1, + }, (values) => { + let args = { + "dt": me.frm.doc.doctype, + "dn": me.frm.doc.name, + "reference_date": values.reference_date + } + me.make_mapped_payment_entry(args); + }, + __("Reference Date for Early Payment Discount"), + __("Continue") + ); + } + + has_discount_in_schedule() { + let is_eligible = in_list( + ["Sales Order", "Sales Invoice", "Purchase Order", "Purchase Invoice"], + this.frm.doctype + ); + let has_payment_schedule = this.frm.doc.payment_schedule && this.frm.doc.payment_schedule.length; + if(!is_eligible || !has_payment_schedule) return false; + + let has_discount = this.frm.doc.payment_schedule.some(row => row.discount_date); + return has_discount; + } + make_quality_inspection() { let data = []; const fields = [ diff --git a/erpnext/public/js/website_utils.js b/erpnext/public/js/website_utils.js index b5416065d791..2bb5255eebc7 100644 --- a/erpnext/public/js/website_utils.js +++ b/erpnext/public/js/website_utils.js @@ -3,18 +3,6 @@ if(!window.erpnext) window.erpnext = {}; -// Add / update a new Lead / Communication -// subject, sender, description -frappe.send_message = function(opts, btn) { - return frappe.call({ - type: "POST", - method: "erpnext.templates.utils.send_message", - btn: btn, - args: opts, - callback: opts.callback - }); -}; - erpnext.subscribe_to_newsletter = function(opts, btn) { return frappe.call({ type: "POST", @@ -24,6 +12,3 @@ erpnext.subscribe_to_newsletter = function(opts, btn) { callback: opts.callback }); } - -// for backward compatibility -erpnext.send_message = frappe.send_message; diff --git a/erpnext/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py index 2fdfcf647d01..2eca5cad8e2e 100644 --- a/erpnext/setup/doctype/item_group/item_group.py +++ b/erpnext/setup/doctype/item_group/item_group.py @@ -148,12 +148,17 @@ def get_item_for_list_in_html(context): def get_parent_item_groups(item_group_name, from_item=False): - base_nav_page = {"name": _("All Products"), "route": "/all-products"} + settings = frappe.get_cached_doc("E Commerce Settings") + + if settings.enable_field_filters: + base_nav_page = {"name": _("Shop by Category"), "route": "/shop-by-category"} + else: + base_nav_page = {"name": _("All Products"), "route": "/all-products"} if from_item and frappe.request.environ.get("HTTP_REFERER"): # base page after 'Home' will vary on Item page last_page = frappe.request.environ["HTTP_REFERER"].split("/")[-1].split("?")[0] - if last_page and last_page == "shop-by-category": + if last_page and last_page in ("shop-by-category", "all-products"): base_nav_page_title = " ".join(last_page.split("-")).title() base_nav_page = {"name": _(base_nav_page_title), "route": "/" + last_page} diff --git a/erpnext/stock/doctype/batch/batch.py b/erpnext/stock/doctype/batch/batch.py index f14288beb20f..4a165212dcec 100644 --- a/erpnext/stock/doctype/batch/batch.py +++ b/erpnext/stock/doctype/batch/batch.py @@ -6,7 +6,7 @@ from frappe import _ from frappe.model.document import Document from frappe.model.naming import make_autoname, revert_series_if_last -from frappe.utils import cint, flt, get_link_to_form +from frappe.utils import cint, flt, get_link_to_form, nowtime from frappe.utils.data import add_days from frappe.utils.jinja import render_template @@ -179,7 +179,11 @@ def get_batch_qty( out = 0 if batch_no and warehouse: cond = "" - if posting_date and posting_time: + + if posting_date: + if posting_time is None: + posting_time = nowtime() + cond = " and timestamp(posting_date, posting_time) <= timestamp('{0}', '{1}')".format( posting_date, posting_time ) diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py index 3f6a2c881b82..04d1a3a5e221 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py @@ -4,7 +4,7 @@ from typing import Optional import frappe -from frappe import _, msgprint +from frappe import _, bold, msgprint from frappe.utils import cint, cstr, flt import erpnext @@ -89,7 +89,7 @@ def _changed(item): if item_dict.get("serial_nos"): item.current_serial_no = item_dict.get("serial_nos") - if self.purpose == "Stock Reconciliation" and not item.serial_no: + if self.purpose == "Stock Reconciliation" and not item.serial_no and item.qty: item.serial_no = item.current_serial_no item.current_qty = item_dict.get("qty") @@ -140,6 +140,14 @@ def _get_msg(row_num, msg): self.validate_item(row.item_code, row) + if row.serial_no and not row.qty: + self.validation_messages.append( + _get_msg( + row_num, + f"Quantity should not be zero for the {bold(row.item_code)} since serial nos are specified", + ) + ) + # validate warehouse if not frappe.db.get_value("Warehouse", row.warehouse): self.validation_messages.append(_get_msg(row_num, _("Warehouse not found in the system"))) diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 489ec6ebecce..2df39c818326 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -35,7 +35,14 @@ @frappe.whitelist() -def get_item_details(args, doc=None, for_validate=False, overwrite_warehouse=True): +def get_item_details( + args, + doc=None, + for_validate=False, + overwrite_warehouse=True, + return_basic_details=False, + basic_details=None, +): """ args = { "item_code": "", @@ -73,7 +80,13 @@ def get_item_details(args, doc=None, for_validate=False, overwrite_warehouse=Tru if doc.get("doctype") == "Purchase Invoice": args["bill_date"] = doc.get("bill_date") - out = get_basic_details(args, item, overwrite_warehouse) + if not basic_details: + out = get_basic_details(args, item, overwrite_warehouse) + else: + out = basic_details + + basic_details = out.copy() + get_item_tax_template(args, item, out) out["item_tax_rate"] = get_item_tax_map( args.company, @@ -141,7 +154,11 @@ def get_item_details(args, doc=None, for_validate=False, overwrite_warehouse=Tru out.amount = flt(args.qty) * flt(out.rate) out = remove_standard_fields(out) - return out + + if return_basic_details: + return out, basic_details + else: + return out def remove_standard_fields(details): diff --git a/erpnext/stock/report/stock_ledger/stock_ledger.py b/erpnext/stock/report/stock_ledger/stock_ledger.py index da17cdeb5aed..77bc4e004de7 100644 --- a/erpnext/stock/report/stock_ledger/stock_ledger.py +++ b/erpnext/stock/report/stock_ledger/stock_ledger.py @@ -34,6 +34,9 @@ def execute(filters=None): conversion_factors.append(0) actual_qty = stock_value = 0 + if opening_row: + actual_qty = opening_row.get("qty_after_transaction") + stock_value = opening_row.get("stock_value") available_serial_nos = {} inventory_dimension_filters_applied = check_inventory_dimension_filters_applied(filters) diff --git a/erpnext/templates/utils.py b/erpnext/templates/utils.py index 48b44802a8f8..57750a56f6f9 100644 --- a/erpnext/templates/utils.py +++ b/erpnext/templates/utils.py @@ -6,13 +6,12 @@ @frappe.whitelist(allow_guest=True) -def send_message(subject="Website Query", message="", sender="", status="Open"): +def send_message(sender, message, subject="Website Query"): from frappe.www.contact import send_message as website_send_message - lead = customer = None - - website_send_message(subject, message, sender) + website_send_message(sender, message, subject) + lead = customer = None customer = frappe.db.sql( """select distinct dl.link_name from `tabDynamic Link` dl left join `tabContact` c on dl.parent=c.name where dl.link_doctype='Customer' @@ -58,5 +57,3 @@ def send_message(subject="Website Query", message="", sender="", status="Open"): } ) comm.insert(ignore_permissions=True) - - return "okay" diff --git a/erpnext/utilities/transaction_base.py b/erpnext/utilities/transaction_base.py index 21a0a551b627..7eba35dedd93 100644 --- a/erpnext/utilities/transaction_base.py +++ b/erpnext/utilities/transaction_base.py @@ -58,11 +58,11 @@ def validate_with_previous_doc(self, ref): def compare_values(self, ref_doc, fields, doc=None): for reference_doctype, ref_dn_list in ref_doc.items(): + prev_doc_detail_map = self.get_prev_doc_reference_details( + ref_dn_list, reference_doctype, fields + ) for reference_name in ref_dn_list: - prevdoc_values = frappe.db.get_value( - reference_doctype, reference_name, [d[0] for d in fields], as_dict=1 - ) - + prevdoc_values = prev_doc_detail_map.get(reference_name) if not prevdoc_values: frappe.throw(_("Invalid reference {0} {1}").format(reference_doctype, reference_name)) @@ -70,6 +70,19 @@ def compare_values(self, ref_doc, fields, doc=None): if prevdoc_values[field] is not None and field not in self.exclude_fields: self.validate_value(field, condition, prevdoc_values[field], doc) + def get_prev_doc_reference_details(self, reference_names, reference_doctype, fields): + prev_doc_detail_map = {} + details = frappe.get_all( + reference_doctype, + filters={"name": ("in", reference_names)}, + fields=["name"] + [d[0] for d in fields], + ) + + for d in details: + prev_doc_detail_map.setdefault(d.name, d) + + return prev_doc_detail_map + def validate_rate_with_reference_doc(self, ref_details): if self.get("is_internal_supplier"): return @@ -77,23 +90,23 @@ def validate_rate_with_reference_doc(self, ref_details): buying_doctypes = ["Purchase Order", "Purchase Invoice", "Purchase Receipt"] if self.doctype in buying_doctypes: - action = frappe.db.get_single_value("Buying Settings", "maintain_same_rate_action") - settings_doc = "Buying Settings" + action, role_allowed_to_override = frappe.get_cached_value( + "Buying Settings", "None", ["maintain_same_rate_action", "role_to_override_stop_action"] + ) else: - action = frappe.db.get_single_value("Selling Settings", "maintain_same_rate_action") - settings_doc = "Selling Settings" + action, role_allowed_to_override = frappe.get_cached_value( + "Selling Settings", "None", ["maintain_same_rate_action", "role_to_override_stop_action"] + ) for ref_dt, ref_dn_field, ref_link_field in ref_details: + reference_names = [d.get(ref_link_field) for d in self.get("items") if d.get(ref_link_field)] + reference_details = self.get_reference_details(reference_names, ref_dt + " Item") for d in self.get("items"): if d.get(ref_link_field): - ref_rate = frappe.db.get_value(ref_dt + " Item", d.get(ref_link_field), "rate") + ref_rate = reference_details.get(d.get(ref_link_field)) if abs(flt(d.rate - ref_rate, d.precision("rate"))) >= 0.01: if action == "Stop": - role_allowed_to_override = frappe.db.get_single_value( - settings_doc, "role_to_override_stop_action" - ) - if role_allowed_to_override not in frappe.get_roles(): frappe.throw( _("Row #{0}: Rate must be same as {1}: {2} ({3} / {4})").format( @@ -109,6 +122,16 @@ def validate_rate_with_reference_doc(self, ref_details): indicator="orange", ) + def get_reference_details(self, reference_names, reference_doctype): + return frappe._dict( + frappe.get_all( + reference_doctype, + filters={"name": ("in", reference_names)}, + fields=["name", "rate"], + as_list=1, + ) + ) + def get_link_filters(self, for_doctype): if hasattr(self, "prev_link_mapper") and self.prev_link_mapper.get(for_doctype): fieldname = self.prev_link_mapper[for_doctype]["fieldname"] @@ -186,12 +209,15 @@ def validate_uom_is_integer(doc, uom_field, qty_fields, child_dt=None): for f in qty_fields: qty = d.get(f) if qty: - if abs(cint(qty) - flt(qty)) > 0.0000001: + if abs(cint(qty) - flt(qty, d.precision(f))) > 0.0000001: frappe.throw( _( "Row {1}: Quantity ({0}) cannot be a fraction. To allow this, disable '{2}' in UOM {3}." ).format( - qty, d.idx, frappe.bold(_("Must be Whole Number")), frappe.bold(d.get(uom_field)) + flt(qty, d.precision(f)), + d.idx, + frappe.bold(_("Must be Whole Number")), + frappe.bold(d.get(uom_field)), ), UOMMustBeIntegerError, ) diff --git a/erpnext/www/shop-by-category/index.py b/erpnext/www/shop-by-category/index.py index 219747c9f8a5..913c1836acdf 100644 --- a/erpnext/www/shop-by-category/index.py +++ b/erpnext/www/shop-by-category/index.py @@ -53,6 +53,7 @@ def get_tabs(categories): def get_category_records(categories: list): categorical_data = {} + website_item_meta = frappe.get_meta("Website Item", cached=True) for c in categories: if c == "item_group": @@ -64,7 +65,16 @@ def get_category_records(categories: list): continue - doctype = frappe.unscrub(c) + field_type = website_item_meta.get_field(c).fieldtype + + if field_type == "Table MultiSelect": + child_doc = website_item_meta.get_field(c).options + for field in frappe.get_meta(child_doc, cached=True).fields: + if field.fieldtype == "Link" and field.reqd: + doctype = field.options + else: + doctype = website_item_meta.get_field(c).options + fields = ["name"] try: From c7cee866850b8dab3a97dde1225a12cda15cb532 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 4 Apr 2023 23:56:57 +0530 Subject: [PATCH 351/355] fix: incorrect stock balance quantity for batch item (cherry picked from commit ef4bd771968274d73ec5df865159d251c91ebb3e) (cherry picked from commit d817c50581fedd46b5ee93f3cfd55247d1fd9823) --- .../stock_reconciliation.py | 49 +++++++++++++++++++ erpnext/stock/stock_ledger.py | 15 +++++- 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py index 04d1a3a5e221..482b103d1e4b 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py @@ -5,6 +5,7 @@ import frappe from frappe import _, bold, msgprint +from frappe.query_builder.functions import Sum from frappe.utils import cint, cstr, flt import erpnext @@ -569,6 +570,54 @@ def cancel(self): else: self._cancel() + def recalculate_current_qty(self, item_code, batch_no): + for row in self.items: + if not (row.item_code == item_code and row.batch_no == batch_no): + continue + + row.current_qty = get_batch_qty_for_stock_reco(item_code, row.warehouse, batch_no) + + qty, val_rate = get_stock_balance( + item_code, + row.warehouse, + self.posting_date, + self.posting_time, + with_valuation_rate=True, + ) + + row.current_valuation_rate = val_rate + + row.db_set( + { + "current_qty": row.current_qty, + "current_valuation_rate": row.current_valuation_rate, + "current_amount": flt(row.current_qty * row.current_valuation_rate), + } + ) + + +def get_batch_qty_for_stock_reco(item_code, warehouse, batch_no): + ledger = frappe.qb.DocType("Stock Ledger Entry") + + query = ( + frappe.qb.from_(ledger) + .select( + Sum(ledger.actual_qty).as_("batch_qty"), + ) + .where( + (ledger.item_code == item_code) + & (ledger.warehouse == warehouse) + & (ledger.docstatus == 1) + & (ledger.is_cancelled == 0) + & (ledger.batch_no == batch_no) + ) + .groupby(ledger.batch_no) + ) + + sle = query.run(as_dict=True) + + return flt(sle[0].batch_qty) if sle else 0 + @frappe.whitelist() def get_items( diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index 08fc6fbd42fb..c954befdc297 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -1337,6 +1337,9 @@ def update_qty_in_future_sle(args, allow_negative_stock=False): next_stock_reco_detail = get_next_stock_reco(args) if next_stock_reco_detail: detail = next_stock_reco_detail[0] + if detail.batch_no: + regenerate_sle_for_batch_stock_reco(detail) + # add condition to update SLEs before this date & time datetime_limit_condition = get_datetime_limit_condition(detail) @@ -1364,6 +1367,16 @@ def update_qty_in_future_sle(args, allow_negative_stock=False): validate_negative_qty_in_future_sle(args, allow_negative_stock) +def regenerate_sle_for_batch_stock_reco(detail): + doc = frappe.get_cached_doc("Stock Reconciliation", detail.voucher_no) + doc.docstatus = 2 + doc.update_stock_ledger() + + doc.recalculate_current_qty(detail.item_code, detail.batch_no) + doc.docstatus = 1 + doc.update_stock_ledger() + + def get_stock_reco_qty_shift(args): stock_reco_qty_shift = 0 if args.get("is_cancelled"): @@ -1393,7 +1406,7 @@ def get_next_stock_reco(args): return frappe.db.sql( """ select - name, posting_date, posting_time, creation, voucher_no + name, posting_date, posting_time, creation, voucher_no, item_code, batch_no, actual_qty from `tabStock Ledger Entry` where From b6ae9a4a72fcfc83e0ff73102eef4736abd5c789 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 5 Apr 2023 18:57:55 +0000 Subject: [PATCH 352/355] chore(release): Bumped to Version 14.20.2 ## [14.20.2](https://github.com/frappe/erpnext/compare/v14.20.1...v14.20.2) (2023-04-05) ### Bug Fixes * incorrect stock balance quantity for batch item ([c7cee86](https://github.com/frappe/erpnext/commit/c7cee866850b8dab3a97dde1225a12cda15cb532)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 643815e38fce..a782703e7605 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.20.1" +__version__ = "14.20.2" def get_default_company(user=None): From f4473b36a5ab5892117e7e2c69f6ef98a7d6c8b6 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 6 Apr 2023 13:22:09 +0530 Subject: [PATCH 353/355] fix: Unable to create payment request against purchase invoice (#34762) fix: Unable to create payment request against purchase invoice (#34762) fix: Unable to create payment request against purchase invoice (#34762) (cherry picked from commit 91a26608ee6a8cb09547e2d5059a36ae4daaa0d9) Co-authored-by: Deepesh Garg (cherry picked from commit a1f7e359142132a3e0bbcd49f37bab84071ef4dc) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- .../payment_request/payment_request.py | 2 +- .../payment_request/test_payment_request.py | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index aa8743e1caa4..0955664d98be 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -497,7 +497,7 @@ def get_amount(ref_doc, payment_account=None): if dt in ["Sales Order", "Purchase Order"]: grand_total = flt(ref_doc.rounded_total) or flt(ref_doc.grand_total) elif dt in ["Sales Invoice", "Purchase Invoice"]: - if not ref_doc.is_pos: + if not ref_doc.get("is_pos"): if ref_doc.party_account_currency == ref_doc.currency: grand_total = flt(ref_doc.outstanding_amount) else: diff --git a/erpnext/accounts/doctype/payment_request/test_payment_request.py b/erpnext/accounts/doctype/payment_request/test_payment_request.py index 4279aa4f85c6..e17a846dd814 100644 --- a/erpnext/accounts/doctype/payment_request/test_payment_request.py +++ b/erpnext/accounts/doctype/payment_request/test_payment_request.py @@ -6,6 +6,7 @@ import frappe from erpnext.accounts.doctype.payment_request.payment_request import make_payment_request +from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order from erpnext.setup.utils import get_exchange_rate @@ -74,6 +75,29 @@ def test_payment_request_linkings(self): self.assertEqual(pr.reference_name, si_usd.name) self.assertEqual(pr.currency, "USD") + def test_payment_entry_against_purchase_invoice(self): + si_usd = make_purchase_invoice( + customer="_Test Supplier USD", + debit_to="_Test Payable USD - _TC", + currency="USD", + conversion_rate=50, + ) + + pr = make_payment_request( + dt="Purchase Invoice", + dn=si_usd.name, + recipient_id="user@example.com", + mute_email=1, + payment_gateway_account="_Test Gateway - USD", + submit_doc=1, + return_doc=1, + ) + + pe = pr.create_payment_entry() + pr.load_from_db() + + self.assertEqual(pr.status, "Paid") + def test_payment_entry(self): frappe.db.set_value( "Company", "_Test Company", "exchange_gain_loss_account", "_Test Exchange Gain/Loss - _TC" From 2a8c9f8e69ebb568dd7430de3324203a128cf3b5 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Thu, 6 Apr 2023 07:54:09 +0000 Subject: [PATCH 354/355] chore(release): Bumped to Version 14.20.3 ## [14.20.3](https://github.com/frappe/erpnext/compare/v14.20.2...v14.20.3) (2023-04-06) ### Bug Fixes * Unable to create payment request against purchase invoice ([#34762](https://github.com/frappe/erpnext/issues/34762)) ([f4473b3](https://github.com/frappe/erpnext/commit/f4473b36a5ab5892117e7e2c69f6ef98a7d6c8b6)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index a782703e7605..456ca52020ba 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import frappe -__version__ = "14.20.2" +__version__ = "14.20.3" def get_default_company(user=None): From cc6d62a50a99200549b5a0cc229e6c92d3dac433 Mon Sep 17 00:00:00 2001 From: Rohan Bansal Date: Thu, 6 Apr 2023 15:03:54 +0530 Subject: [PATCH 355/355] ci: use version-14 of the payments app --- .github/helper/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/helper/install.sh b/.github/helper/install.sh index e2743c2e3708..c505d3b9326d 100644 --- a/.github/helper/install.sh +++ b/.github/helper/install.sh @@ -57,7 +57,7 @@ sed -i 's/schedule:/# schedule:/g' Procfile sed -i 's/socketio:/# socketio:/g' Procfile sed -i 's/redis_socketio:/# redis_socketio:/g' Procfile -bench get-app payments --branch ${githubbranch%"-hotfix"} +bench get-app payments --branch version-14 bench get-app erpnext "${GITHUB_WORKSPACE}" if [ "$TYPE" == "server" ]; then bench setup requirements --dev; fi