fix: set expense_account and cost_center based on company in stock entry (backport #45159) (#45416)

fix: set expense_account and cost_center based on company in stock entry (#45159)

* fix: set expense_account and cost_center based on company in stock entry

* fix: remove is_perpetual_inventory_enabled validation for cost_center

(cherry picked from commit 6ec18fb40d)

Co-authored-by: Sugesh G <73237300+Sugesh393@users.noreply.github.com>
This commit is contained in:
mergify[bot]
2025-01-24 12:17:08 +05:30
committed by GitHub
parent 835abfd88e
commit 3eb28bb0e0

View File

@@ -507,18 +507,6 @@ frappe.ui.form.on("Stock Entry", {
}); });
}, },
company: function (frm) {
if (frm.doc.company) {
var company_doc = frappe.get_doc(":Company", frm.doc.company);
if (company_doc.default_letter_head) {
frm.set_value("letter_head", company_doc.default_letter_head);
}
frm.trigger("toggle_display_account_head");
erpnext.accounts.dimensions.update_dimension(frm, frm.doctype);
}
},
make_retention_stock_entry: function (frm) { make_retention_stock_entry: function (frm) {
frappe.call({ frappe.call({
method: "erpnext.stock.doctype.stock_entry.stock_entry.move_sample_to_retention_warehouse", method: "erpnext.stock.doctype.stock_entry.stock_entry.move_sample_to_retention_warehouse",
@@ -1060,11 +1048,9 @@ erpnext.stock.StockEntry = class StockEntry extends erpnext.stock.StockControlle
onload_post_render() { onload_post_render() {
var me = this; var me = this;
this.set_default_account(function () { if (me.frm.doc.__islocal && me.frm.doc.company && !me.frm.doc.amended_from) {
if (me.frm.doc.__islocal && me.frm.doc.company && !me.frm.doc.amended_from) { me.company();
me.frm.trigger("company"); }
}
});
this.frm.get_field("items").grid.set_multiple_add("item_code", "qty"); this.frm.get_field("items").grid.set_multiple_add("item_code", "qty");
} }
@@ -1143,26 +1129,40 @@ erpnext.stock.StockEntry = class StockEntry extends erpnext.stock.StockControlle
this.clean_up(); this.clean_up();
} }
set_default_account(callback) { company() {
if (this.frm.doc.company) {
var company_doc = frappe.get_doc(":Company", this.frm.doc.company);
if (company_doc.default_letter_head) {
this.frm.set_value("letter_head", company_doc.default_letter_head);
}
this.frm.trigger("toggle_display_account_head");
erpnext.accounts.dimensions.update_dimension(this.frm, this.frm.doctype);
if (this.frm.doc.company && erpnext.is_perpetual_inventory_enabled(this.frm.doc.company))
this.set_default_account("stock_adjustment_account", "expense_account");
this.set_default_account("cost_center", "cost_center");
this.frm.refresh_fields("items");
}
}
set_default_account(company_fieldname, fieldname) {
var me = this; var me = this;
if (this.frm.doc.company && erpnext.is_perpetual_inventory_enabled(this.frm.doc.company)) { return this.frm.call({
return this.frm.call({ method: "erpnext.accounts.utils.get_company_default",
method: "erpnext.accounts.utils.get_company_default", args: {
args: { fieldname: company_fieldname,
fieldname: "stock_adjustment_account", company: this.frm.doc.company,
company: this.frm.doc.company, },
}, callback: function (r) {
callback: function (r) { if (!r.exc) {
if (!r.exc) { $.each(me.frm.doc.items || [], function (i, d) {
$.each(me.frm.doc.items || [], function (i, d) { d[fieldname] = r.message;
if (!d.expense_account) d.expense_account = r.message; });
}); }
if (callback) callback(); },
} });
},
});
}
} }
clean_up() { clean_up() {