fix: set_missing_values in SE and re-use the same on all SE mappings

- `set_missing_values` in SE will set actual qty, transfer qty and calculate rate/amount
- Re-use `set_missing_values` wherever SE is doc is being mapped
This commit is contained in:
marination 2022-05-11 14:54:22 +05:30
parent 494ddd1eb4
commit 90a8e924f5
9 changed files with 18 additions and 8 deletions

View File

@ -637,6 +637,8 @@ def make_rm_stock_entry(purchase_order, rm_items):
} }
} }
stock_entry.add_to_stock_entry_detail(items_dict) stock_entry.add_to_stock_entry_detail(items_dict)
stock_entry.set_missing_values()
return stock_entry.as_dict() return stock_entry.as_dict()
else: else:
frappe.throw(_("No Items selected for transfer")) frappe.throw(_("No Items selected for transfer"))
@ -724,7 +726,7 @@ def make_return_stock_entry_for_subcontract(available_materials, po_doc, po_deta
add_items_in_ste(ste_doc, value, value.qty, po_details) add_items_in_ste(ste_doc, value, value.qty, po_details)
ste_doc.set_stock_entry_type() ste_doc.set_stock_entry_type()
ste_doc.calculate_rate_and_amount() ste_doc.set_missing_values()
return ste_doc return ste_doc

View File

@ -764,8 +764,6 @@ def make_stock_entry(source_name, target_doc=None):
pending_fg_qty = flt(source.get("for_quantity", 0)) - flt(source.get("transferred_qty", 0)) pending_fg_qty = flt(source.get("for_quantity", 0)) - flt(source.get("transferred_qty", 0))
target.fg_completed_qty = pending_fg_qty if pending_fg_qty > 0 else 0 target.fg_completed_qty = pending_fg_qty if pending_fg_qty > 0 else 0
target.set_transfer_qty()
target.calculate_rate_and_amount()
target.set_missing_values() target.set_missing_values()
target.set_stock_entry_type() target.set_stock_entry_type()

View File

@ -1384,7 +1384,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
var me = this; var me = this;
var args = this._get_args(item); var args = this._get_args(item);
if (!(args.items && args.items.length)) { if (!(args.items && args.items.length)) {
if(calculate_taxes_and_totals) me.calculate_taxes_and_totals(); if (calculate_taxes_and_totals) me.calculate_taxes_and_totals();
return; return;
} }
@ -1392,7 +1392,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
if (this.frm.doc.__onload && this.frm.doc.__onload.ignore_price_list) { if (this.frm.doc.__onload && this.frm.doc.__onload.ignore_price_list) {
// Calculate totals even though pricing rule is not applied. // Calculate totals even though pricing rule is not applied.
// `apply_pricing_rule` is triggered due to change in data which most likely contributes to Total. // `apply_pricing_rule` is triggered due to change in data which most likely contributes to Total.
if(calculate_taxes_and_totals) me.calculate_taxes_and_totals(); if (calculate_taxes_and_totals) me.calculate_taxes_and_totals();
return; return;
} }

View File

@ -244,6 +244,7 @@ def split_batch(batch_no, item_code, warehouse, qty, new_batch_id=None):
) )
) )
stock_entry.set_stock_entry_type() stock_entry.set_stock_entry_type()
stock_entry.set_missing_values()
stock_entry.insert() stock_entry.insert()
stock_entry.submit() stock_entry.submit()

View File

@ -597,7 +597,7 @@ def make_stock_entry(source_name, target_doc=None):
if source.material_request_type == "Customer Provided": if source.material_request_type == "Customer Provided":
target.purpose = "Material Receipt" target.purpose = "Material Receipt"
target.run_method("calculate_rate_and_amount") target.set_missing_values()
target.set_stock_entry_type() target.set_stock_entry_type()
target.set_job_card_data() target.set_job_card_data()

View File

@ -672,8 +672,7 @@ def create_stock_entry(pick_list):
else: else:
stock_entry = update_stock_entry_items_with_no_reference(pick_list, stock_entry) stock_entry = update_stock_entry_items_with_no_reference(pick_list, stock_entry)
stock_entry.set_actual_qty() stock_entry.set_missing_values()
stock_entry.calculate_rate_and_amount()
return stock_entry.as_dict() return stock_entry.as_dict()

View File

@ -1036,6 +1036,7 @@ def make_stock_entry(source_name, target_doc=None):
def set_missing_values(source, target): def set_missing_values(source, target):
target.stock_entry_type = "Material Transfer" target.stock_entry_type = "Material Transfer"
target.purpose = "Material Transfer" target.purpose = "Material Transfer"
target.set_missing_values()
doclist = get_mapped_doc( doclist = get_mapped_doc(
"Purchase Receipt", "Purchase Receipt",

View File

@ -2197,6 +2197,12 @@ class StockEntry(StockController):
return sorted(list(set(get_serial_nos(self.pro_doc.serial_no)) - set(used_serial_nos))) return sorted(list(set(get_serial_nos(self.pro_doc.serial_no)) - set(used_serial_nos)))
def set_missing_values(self):
"Updates rate and availability of all the items of mapped doc."
self.set_transfer_qty()
self.set_actual_qty()
self.calculate_rate_and_amount()
@frappe.whitelist() @frappe.whitelist()
def move_sample_to_retention_warehouse(company, items): def move_sample_to_retention_warehouse(company, items):
@ -2246,6 +2252,7 @@ def move_sample_to_retention_warehouse(company, items):
def make_stock_in_entry(source_name, target_doc=None): def make_stock_in_entry(source_name, target_doc=None):
def set_missing_values(source, target): def set_missing_values(source, target):
target.set_stock_entry_type() target.set_stock_entry_type()
target.set_missing_values()
def update_item(source_doc, target_doc, source_parent): def update_item(source_doc, target_doc, source_parent):
target_doc.t_warehouse = "" target_doc.t_warehouse = ""

View File

@ -132,6 +132,8 @@ def make_stock_entry(**args):
) )
s.set_stock_entry_type() s.set_stock_entry_type()
s.set_missing_values()
if not args.do_not_save: if not args.do_not_save:
s.insert() s.insert()
if not args.do_not_submit: if not args.do_not_submit: