mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-01 03:09:09 +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) {
|
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;
|
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;
|
var update_stock = 0, show_batch_dialog = 0;
|
||||||
|
|
||||||
item.weight_per_unit = 0;
|
item.weight_per_unit = 0;
|
||||||
@@ -527,7 +538,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
|
|||||||
show_batch_dialog = update_stock;
|
show_batch_dialog = update_stock;
|
||||||
|
|
||||||
} else if((this.frm.doc.doctype === 'Purchase Receipt') ||
|
} else if((this.frm.doc.doctype === 'Purchase Receipt') ||
|
||||||
this.frm.doc.doctype === 'Delivery Note') {
|
this.frm.doc.doctype === 'Delivery Note') {
|
||||||
show_batch_dialog = 1;
|
show_batch_dialog = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -600,10 +611,10 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
|
|||||||
frappe.run_serially([
|
frappe.run_serially([
|
||||||
() => {
|
() => {
|
||||||
if (item.docstatus === 0
|
if (item.docstatus === 0
|
||||||
&& frappe.meta.has_field(item.doctype, "use_serial_batch_fields")
|
&& frappe.meta.has_field(item.doctype, "use_serial_batch_fields")
|
||||||
&& !item.use_serial_batch_fields
|
&& !item.use_serial_batch_fields
|
||||||
&& cint(frappe.user_defaults?.use_serial_batch_fields) === 1
|
&& cint(frappe.user_defaults?.use_serial_batch_fields) === 1
|
||||||
) {
|
) {
|
||||||
item["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
|
// 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) {
|
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.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 {
|
} else {
|
||||||
me.frm.script_manager.trigger("price_list_rate", cdt, cdn);
|
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)
|
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"])
|
return frappe.db.get_value("Item", item.item_code, ["has_batch_no", "has_serial_no"])
|
||||||
.then((r) => {
|
.then((r) => {
|
||||||
if (r.message &&
|
if (r.message &&
|
||||||
(r.message.has_batch_no || r.message.has_serial_no)) {
|
(r.message.has_batch_no || r.message.has_serial_no)) {
|
||||||
frappe.flags.hide_serial_batch_dialog = false;
|
frappe.flags.hide_serial_batch_dialog = false;
|
||||||
} else {
|
} else {
|
||||||
show_batch_dialog = false;
|
show_batch_dialog = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
// check if batch serial selector is disabled or not
|
// check if batch serial selector is disabled or not
|
||||||
if (show_batch_dialog && !frappe.flags.hide_serial_batch_dialog)
|
if (show_batch_dialog && !frappe.flags.hide_serial_batch_dialog)
|
||||||
return frappe.db.get_single_value('Stock Settings', 'disable_serial_no_and_batch_selector')
|
return frappe.db.get_single_value('Stock Settings', 'disable_serial_no_and_batch_selector')
|
||||||
.then((value) => {
|
.then((value) => {
|
||||||
if (value) {
|
if (value) {
|
||||||
frappe.flags.hide_serial_batch_dialog = true;
|
frappe.flags.hide_serial_batch_dialog = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
if(show_batch_dialog && !frappe.flags.hide_serial_batch_dialog && !frappe.flags.dialog_set) {
|
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) {
|
price_list_rate(doc, cdt, cdn) {
|
||||||
var item = frappe.get_doc(cdt, cdn);
|
var item = frappe.get_doc(cdt, cdn);
|
||||||
frappe.model.round_floats_in(item, ["price_list_rate", "discount_percentage"]);
|
frappe.model.round_floats_in(item, ["price_list_rate", "discount_percentage"]);
|
||||||
|
|||||||
Reference in New Issue
Block a user