Merge pull request #31133 from frappe/mergify/bp/develop/pr-31124
fix: timesheet fetching in sales invoice (backport #31124)
This commit is contained in:
commit
a5677d963f
@ -861,27 +861,44 @@ frappe.ui.form.on('Sales Invoice', {
|
||||
|
||||
set_timesheet_data: function(frm, timesheets) {
|
||||
frm.clear_table("timesheets")
|
||||
timesheets.forEach(timesheet => {
|
||||
timesheets.forEach(async (timesheet) => {
|
||||
if (frm.doc.currency != timesheet.currency) {
|
||||
frappe.call({
|
||||
method: "erpnext.setup.utils.get_exchange_rate",
|
||||
args: {
|
||||
from_currency: timesheet.currency,
|
||||
to_currency: frm.doc.currency
|
||||
},
|
||||
callback: function(r) {
|
||||
if (r.message) {
|
||||
exchange_rate = r.message;
|
||||
frm.events.append_time_log(frm, timesheet, exchange_rate);
|
||||
}
|
||||
}
|
||||
});
|
||||
const exchange_rate = await frm.events.get_exchange_rate(
|
||||
frm, timesheet.currency, frm.doc.currency
|
||||
)
|
||||
frm.events.append_time_log(frm, timesheet, exchange_rate)
|
||||
} else {
|
||||
frm.events.append_time_log(frm, timesheet, 1.0);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
async get_exchange_rate(frm, from_currency, to_currency) {
|
||||
if (
|
||||
frm.exchange_rates
|
||||
&& frm.exchange_rates[from_currency]
|
||||
&& frm.exchange_rates[from_currency][to_currency]
|
||||
) {
|
||||
return frm.exchange_rates[from_currency][to_currency];
|
||||
}
|
||||
|
||||
return frappe.call({
|
||||
method: "erpnext.setup.utils.get_exchange_rate",
|
||||
args: {
|
||||
from_currency,
|
||||
to_currency
|
||||
},
|
||||
callback: function(r) {
|
||||
if (r.message) {
|
||||
// cache exchange rates
|
||||
frm.exchange_rates = frm.exchange_rates || {};
|
||||
frm.exchange_rates[from_currency] = frm.exchange_rates[from_currency] || {};
|
||||
frm.exchange_rates[from_currency][to_currency] = r.message;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
append_time_log: function(frm, time_log, exchange_rate) {
|
||||
const row = frm.add_child("timesheets");
|
||||
row.activity_type = time_log.activity_type;
|
||||
@ -892,7 +909,7 @@ frappe.ui.form.on('Sales Invoice', {
|
||||
row.billing_hours = time_log.billing_hours;
|
||||
row.billing_amount = flt(time_log.billing_amount) * flt(exchange_rate);
|
||||
row.timesheet_detail = time_log.name;
|
||||
row.project_name = time_log.project_name;
|
||||
row.project_name = time_log.project_name;
|
||||
|
||||
frm.refresh_field("timesheets");
|
||||
frm.trigger("calculate_timesheet_totals");
|
||||
|
Loading…
Reference in New Issue
Block a user