Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ frappe.ui.form.on('Inter Branch Stock Transfer Item', {
frappe.model.set_value(cdt, cdn, 't_warehouse', frm.doc.to_warehouse);
}

_fetch_price_list_rate(frm, cdt, cdn, function () {
_fetch_valuation_rate(frm, cdt, cdn);
_fetch_valuation_rate(frm, cdt, cdn, function () {
_fetch_price_list_rate(frm, cdt, cdn);
});
},

Expand Down Expand Up @@ -219,21 +219,26 @@ function _set_uom_query(frm, cdt, cdn) {
});
}

function _fetch_valuation_rate(frm, cdt, cdn) {
function _fetch_valuation_rate(frm, cdt, cdn, callback) {
let row = locals[cdt][cdn];
if (!row.item_code) return;
let warehouse = row.s_warehouse || frm.doc.from_warehouse;
if (!warehouse) return;
let warehouse = row.item_code && (row.s_warehouse || frm.doc.from_warehouse);
if (!warehouse) {
if (callback) callback();
return;
}

frappe.call({
method: 'rmax_custom.rmax_custom.doctype.inter_branch_stock_transfer.inter_branch_stock_transfer.get_item_valuation_rate',
args: { item_code: row.item_code, warehouse: warehouse },
callback: function (r) {
if (r.message !== undefined && !flt(locals[cdt][cdn].basic_rate)) {
frappe.model.set_value(cdt, cdn, 'basic_rate', r.message);
if (r.message !== undefined) {
frappe.model.set_value(cdt, cdn, 'valuation_rate', r.message);
_recalculate_row_amount(cdt, cdn);
if (!flt(locals[cdt][cdn].basic_rate)) {
frappe.model.set_value(cdt, cdn, 'basic_rate', r.message);
_recalculate_row_amount(cdt, cdn);
}
}
if (callback) callback();
}
});
}
Expand Down Expand Up @@ -285,16 +290,11 @@ function _fetch_price_list_rate(frm, cdt, cdn, on_not_found) {
return;
}
frappe.call({
method: 'frappe.client.get_value',
args: {
doctype: 'Item Price',
filters: { item_code: row.item_code, price_list: frm.doc.price_list },
fieldname: 'price_list_rate',
},
method: 'rmax_custom.rmax_custom.doctype.inter_branch_stock_transfer.inter_branch_stock_transfer.get_item_price_rate',
args: { item_code: row.item_code, price_list: frm.doc.price_list },
callback: function (r) {
if (r.message && r.message.price_list_rate) {
frappe.model.set_value(cdt, cdn, 'basic_rate', r.message.price_list_rate);
frappe.model.set_value(cdt, cdn, 'valuation_rate', r.message.price_list_rate);
if (flt(r.message)) {
frappe.model.set_value(cdt, cdn, 'basic_rate', r.message);
_recalculate_row_amount(cdt, cdn);
} else if (on_not_found) {
on_not_found();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,7 @@ def _create_delivery_note(self, target_branch: str | None = None):
dn.posting_date = self.posting_date
dn.posting_time = self.posting_time
dn.set_warehouse = self.to_warehouse
dn.selling_price_list = self.price_list
dn.custom_ibst = self.name
dn.remarks = _("Created from Inter Branch Stock Transfer: {0}").format(self.name)

Expand Down Expand Up @@ -449,3 +450,21 @@ def get_item_valuation_rate(item_code: str, warehouse: str) -> float:
if not rate:
rate = flt(frappe.db.get_value("Item", item_code, "valuation_rate"))
return rate


@frappe.whitelist()
def get_item_price_rate(item_code: str, price_list: str) -> float:
"""Return the Item Price rate for item_code under price_list.

Runs with ignore_permissions since the caller already has access to
the parent IBST doc; avoids the generic frappe.client.get_value call
silently returning nothing for roles without direct Item Price read
access (Branch User / Stock User).
"""
return flt(
frappe.db.get_value(
"Item Price",
{"item_code": item_code, "price_list": price_list, "selling": 1},
"price_list_rate",
)
)
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@
"fieldname": "basic_rate",
"fieldtype": "Currency",
"in_list_view": 1,
"label": "Basic Rate (As per Valuation Method)",
"label": "Rate",
"options": "Company:company:default_currency"
},
{
Expand Down
Loading