mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-14 18:51:21 +00:00
* fix: fetch get_item_tax_template while update items (cherry picked from commit03c9d16ca6) * fix: resolve item tax template from item group in update items (cherry picked from commit97e7916b66) * fix: resolve item tax template from item group in update items (cherry picked from commitad22256b2d) --------- Co-authored-by: ervishnucs <ervishnucs369@gmail.com>
This commit is contained in:
@@ -71,6 +71,7 @@ from erpnext.stock.get_item_details import (
|
|||||||
NOT_APPLICABLE_TAX,
|
NOT_APPLICABLE_TAX,
|
||||||
ItemDetailsCtx,
|
ItemDetailsCtx,
|
||||||
_get_item_tax_template,
|
_get_item_tax_template,
|
||||||
|
_get_item_tax_template_from_item_group,
|
||||||
get_conversion_factor,
|
get_conversion_factor,
|
||||||
get_item_details,
|
get_item_details,
|
||||||
get_item_tax_map,
|
get_item_tax_map,
|
||||||
@@ -3673,7 +3674,12 @@ def set_child_tax_template_and_map(item, child_item, parent_doc):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
child_item.item_tax_template = _get_item_tax_template(ctx, item.taxes)
|
item_tax_template = _get_item_tax_template(ctx, item.taxes)
|
||||||
|
|
||||||
|
if not item_tax_template:
|
||||||
|
item_tax_template = _get_item_tax_template_from_item_group(ctx, item.item_group)
|
||||||
|
|
||||||
|
child_item.item_tax_template = item_tax_template
|
||||||
child_item.item_tax_rate = get_item_tax_map(
|
child_item.item_tax_rate = get_item_tax_map(
|
||||||
doc=parent_doc,
|
doc=parent_doc,
|
||||||
tax_template=child_item.item_tax_template,
|
tax_template=child_item.item_tax_template,
|
||||||
|
|||||||
@@ -726,11 +726,7 @@ def get_item_tax_template(ctx, item=None, out: ItemDetails | None = None):
|
|||||||
item_tax_template = _get_item_tax_template(ctx, item.taxes, out)
|
item_tax_template = _get_item_tax_template(ctx, item.taxes, out)
|
||||||
|
|
||||||
if not item_tax_template:
|
if not item_tax_template:
|
||||||
item_group = item.item_group
|
item_tax_template = _get_item_tax_template_from_item_group(ctx, item.item_group, out)
|
||||||
while item_group and not item_tax_template:
|
|
||||||
item_group_doc = frappe.get_cached_doc("Item Group", item_group)
|
|
||||||
item_tax_template = _get_item_tax_template(ctx, item_group_doc.taxes, out)
|
|
||||||
item_group = item_group_doc.parent_item_group
|
|
||||||
|
|
||||||
if out and ctx.get("child_doctype") and item_tax_template:
|
if out and ctx.get("child_doctype") and item_tax_template:
|
||||||
out.update(get_fetch_values(ctx.get("child_doctype"), "item_tax_template", item_tax_template))
|
out.update(get_fetch_values(ctx.get("child_doctype"), "item_tax_template", item_tax_template))
|
||||||
@@ -738,6 +734,18 @@ def get_item_tax_template(ctx, item=None, out: ItemDetails | None = None):
|
|||||||
return item_tax_template
|
return item_tax_template
|
||||||
|
|
||||||
|
|
||||||
|
def _get_item_tax_template_from_item_group(ctx, item_group, out=None):
|
||||||
|
from frappe.utils.nestedset import get_ancestors_of
|
||||||
|
|
||||||
|
ancestors = get_ancestors_of("Item Group", item_group)
|
||||||
|
for group in [item_group, *ancestors]:
|
||||||
|
group_doc = frappe.get_cached_doc("Item Group", group)
|
||||||
|
item_tax_template = _get_item_tax_template(ctx, group_doc.taxes, out)
|
||||||
|
if item_tax_template:
|
||||||
|
return item_tax_template
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
@erpnext.normalize_ctx_input(ItemDetailsCtx)
|
@erpnext.normalize_ctx_input(ItemDetailsCtx)
|
||||||
def _get_item_tax_template(
|
def _get_item_tax_template(
|
||||||
ctx: ItemDetailsCtx, taxes, out: ItemDetails | None = None, for_validate=False
|
ctx: ItemDetailsCtx, taxes, out: ItemDetails | None = None, for_validate=False
|
||||||
|
|||||||
Reference in New Issue
Block a user