mirror of
https://github.com/frappe/erpnext.git
synced 2026-04-28 11:08:32 +00:00
refactor: configurable reactivity
This commit is contained in:
@@ -497,25 +497,36 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
|
||||
}
|
||||
|
||||
item_code(doc, cdt, cdn) {
|
||||
var item = frappe.get_doc(cdt, cdn);
|
||||
frappe.call({
|
||||
doc: doc,
|
||||
method: "process_item_selection",
|
||||
args: {
|
||||
item: item.name
|
||||
},
|
||||
callback: function(r) {
|
||||
if(!r.exc) {
|
||||
cur_frm.refresh_fields();
|
||||
refresh_field("items");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return;
|
||||
|
||||
var me = this;
|
||||
// Experimental: This will be removed once stability is achieved.
|
||||
frappe.db.get_single_value('Selling Settings', 'use_server_side_reactivity')
|
||||
.then((value) => {
|
||||
if (value) {
|
||||
var item = frappe.get_doc(cdt, cdn);
|
||||
frappe.call({
|
||||
doc: doc,
|
||||
method: "process_item_selection",
|
||||
args: {
|
||||
item: item.name
|
||||
},
|
||||
callback: function(r) {
|
||||
if(!r.exc) {
|
||||
cur_frm.refresh_fields();
|
||||
refresh_field("items");
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
me.process_item_selection(doc, cdt, cdn);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
process_item_selection(doc, cdt, cdn) {
|
||||
var item = frappe.get_doc(cdt, cdn);
|
||||
var me = this;
|
||||
var update_stock = 0, show_batch_dialog = 0;
|
||||
|
||||
item.weight_per_unit = 0;
|
||||
@@ -527,7 +538,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
|
||||
show_batch_dialog = update_stock;
|
||||
|
||||
} else if((this.frm.doc.doctype === 'Purchase Receipt') ||
|
||||
this.frm.doc.doctype === 'Delivery Note') {
|
||||
this.frm.doc.doctype === 'Delivery Note') {
|
||||
show_batch_dialog = 1;
|
||||
}
|
||||
|
||||
@@ -600,10 +611,10 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
|
||||
frappe.run_serially([
|
||||
() => {
|
||||
if (item.docstatus === 0
|
||||
&& frappe.meta.has_field(item.doctype, "use_serial_batch_fields")
|
||||
&& !item.use_serial_batch_fields
|
||||
&& cint(frappe.user_defaults?.use_serial_batch_fields) === 1
|
||||
) {
|
||||
&& frappe.meta.has_field(item.doctype, "use_serial_batch_fields")
|
||||
&& !item.use_serial_batch_fields
|
||||
&& cint(frappe.user_defaults?.use_serial_batch_fields) === 1
|
||||
) {
|
||||
item["use_serial_batch_fields"] = 1;
|
||||
}
|
||||
},
|
||||
@@ -618,7 +629,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
|
||||
// for internal customer instead of pricing rule directly apply valuation rate on item
|
||||
if ((me.frm.doc.is_internal_customer || me.frm.doc.is_internal_supplier) && me.frm.doc.represents_company === me.frm.doc.company) {
|
||||
me.get_incoming_rate(item, me.frm.posting_date, me.frm.posting_time,
|
||||
me.frm.doc.doctype, me.frm.doc.company);
|
||||
me.frm.doc.doctype, me.frm.doc.company);
|
||||
} else {
|
||||
me.frm.script_manager.trigger("price_list_rate", cdt, cdn);
|
||||
}
|
||||
@@ -632,24 +643,24 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
|
||||
() => {
|
||||
if (show_batch_dialog && !frappe.flags.trigger_from_barcode_scanner)
|
||||
return frappe.db.get_value("Item", item.item_code, ["has_batch_no", "has_serial_no"])
|
||||
.then((r) => {
|
||||
if (r.message &&
|
||||
(r.message.has_batch_no || r.message.has_serial_no)) {
|
||||
frappe.flags.hide_serial_batch_dialog = false;
|
||||
} else {
|
||||
show_batch_dialog = false;
|
||||
}
|
||||
});
|
||||
.then((r) => {
|
||||
if (r.message &&
|
||||
(r.message.has_batch_no || r.message.has_serial_no)) {
|
||||
frappe.flags.hide_serial_batch_dialog = false;
|
||||
} else {
|
||||
show_batch_dialog = false;
|
||||
}
|
||||
});
|
||||
},
|
||||
() => {
|
||||
// check if batch serial selector is disabled or not
|
||||
if (show_batch_dialog && !frappe.flags.hide_serial_batch_dialog)
|
||||
return frappe.db.get_single_value('Stock Settings', 'disable_serial_no_and_batch_selector')
|
||||
.then((value) => {
|
||||
if (value) {
|
||||
frappe.flags.hide_serial_batch_dialog = true;
|
||||
}
|
||||
});
|
||||
.then((value) => {
|
||||
if (value) {
|
||||
frappe.flags.hide_serial_batch_dialog = true;
|
||||
}
|
||||
});
|
||||
},
|
||||
() => {
|
||||
if(show_batch_dialog && !frappe.flags.hide_serial_batch_dialog && !frappe.flags.dialog_set) {
|
||||
@@ -693,6 +704,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
price_list_rate(doc, cdt, cdn) {
|
||||
var item = frappe.get_doc(cdt, cdn);
|
||||
frappe.model.round_floats_in(item, ["price_list_rate", "discount_percentage"]);
|
||||
|
||||
Reference in New Issue
Block a user