Merge pull request #31446 from deepeshgarg007/quotation_order_item_syn
fix: Quotation and Sales Order item sync
This commit is contained in:
@@ -207,6 +207,15 @@ def make_sales_order(source_name, target_doc=None):
|
|||||||
|
|
||||||
def _make_sales_order(source_name, target_doc=None, ignore_permissions=False):
|
def _make_sales_order(source_name, target_doc=None, ignore_permissions=False):
|
||||||
customer = _make_customer(source_name, ignore_permissions)
|
customer = _make_customer(source_name, ignore_permissions)
|
||||||
|
ordered_items = frappe._dict(
|
||||||
|
frappe.db.get_all(
|
||||||
|
"Sales Order Item",
|
||||||
|
{"prevdoc_docname": source_name, "docstatus": 1},
|
||||||
|
["item_code", "sum(qty)"],
|
||||||
|
group_by="item_code",
|
||||||
|
as_list=1,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
def set_missing_values(source, target):
|
def set_missing_values(source, target):
|
||||||
if customer:
|
if customer:
|
||||||
@@ -222,7 +231,9 @@ def _make_sales_order(source_name, target_doc=None, ignore_permissions=False):
|
|||||||
target.run_method("calculate_taxes_and_totals")
|
target.run_method("calculate_taxes_and_totals")
|
||||||
|
|
||||||
def update_item(obj, target, source_parent):
|
def update_item(obj, target, source_parent):
|
||||||
target.stock_qty = flt(obj.qty) * flt(obj.conversion_factor)
|
balance_qty = obj.qty - ordered_items.get(obj.item_code, 0.0)
|
||||||
|
target.qty = balance_qty if balance_qty > 0 else 0
|
||||||
|
target.stock_qty = flt(target.qty) * flt(obj.conversion_factor)
|
||||||
|
|
||||||
if obj.against_blanket_order:
|
if obj.against_blanket_order:
|
||||||
target.against_blanket_order = obj.against_blanket_order
|
target.against_blanket_order = obj.against_blanket_order
|
||||||
@@ -238,6 +249,7 @@ def _make_sales_order(source_name, target_doc=None, ignore_permissions=False):
|
|||||||
"doctype": "Sales Order Item",
|
"doctype": "Sales Order Item",
|
||||||
"field_map": {"parent": "prevdoc_docname"},
|
"field_map": {"parent": "prevdoc_docname"},
|
||||||
"postprocess": update_item,
|
"postprocess": update_item,
|
||||||
|
"condition": lambda doc: doc.qty > 0,
|
||||||
},
|
},
|
||||||
"Sales Taxes and Charges": {"doctype": "Sales Taxes and Charges", "add_if_empty": True},
|
"Sales Taxes and Charges": {"doctype": "Sales Taxes and Charges", "add_if_empty": True},
|
||||||
"Sales Team": {"doctype": "Sales Team", "add_if_empty": True},
|
"Sales Team": {"doctype": "Sales Team", "add_if_empty": True},
|
||||||
|
|||||||
Reference in New Issue
Block a user