Hi @msiam,
Please apply custom/client script.
If use the role set in the condition then will hide some options from the desk.
frappe.ui.form.on('Sales Invoice', {
refresh(frm) {
if (frappe.user_roles.indexOf("Sales User") ==-1) {
$("button[data-original-title=Print]").hide();
}
}
});
Then reload and check it.
Thank You!