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:
@@ -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) {
|
||||
frappe.call({
|
||||
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() {
|
||||
var me = this;
|
||||
this.set_default_account(function () {
|
||||
if (me.frm.doc.__islocal && me.frm.doc.company && !me.frm.doc.amended_from) {
|
||||
me.frm.trigger("company");
|
||||
}
|
||||
});
|
||||
if (me.frm.doc.__islocal && me.frm.doc.company && !me.frm.doc.amended_from) {
|
||||
me.company();
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
if (this.frm.doc.company && erpnext.is_perpetual_inventory_enabled(this.frm.doc.company)) {
|
||||
return this.frm.call({
|
||||
method: "erpnext.accounts.utils.get_company_default",
|
||||
args: {
|
||||
fieldname: "stock_adjustment_account",
|
||||
company: this.frm.doc.company,
|
||||
},
|
||||
callback: function (r) {
|
||||
if (!r.exc) {
|
||||
$.each(me.frm.doc.items || [], function (i, d) {
|
||||
if (!d.expense_account) d.expense_account = r.message;
|
||||
});
|
||||
if (callback) callback();
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
return this.frm.call({
|
||||
method: "erpnext.accounts.utils.get_company_default",
|
||||
args: {
|
||||
fieldname: company_fieldname,
|
||||
company: this.frm.doc.company,
|
||||
},
|
||||
callback: function (r) {
|
||||
if (!r.exc) {
|
||||
$.each(me.frm.doc.items || [], function (i, d) {
|
||||
d[fieldname] = r.message;
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
clean_up() {
|
||||
|
||||
Reference in New Issue
Block a user