Is there a way to set the default income account for a customer? ie: when I sell items to this customer, the income account will be a certain income/sales account defined in my Chart of Accounts.
Right now I have to edit each individual item in the item details within the Sales Invoice. I thought I could use a POS profile to set it but I usually create a Sales Invoice from the Delivery Note and the items details is prefilled before I can set a POS profile.
@saidsl thanks for the feedback. Unfortunately, this is not the answer. This sets the receivable account and not the income account. I’m looking for the income account. Do you have an answer to that?
The screen grab is the correct place to set the account you want to assign the customer too. Added to that in the chart of account you would need to set the type of account you want it to be and in your case an Income account.
Accounts > Chart of Accounts > Expand Income Root > Create New Account (If you have not) > In the account type select Income Account
But I think I may not have been clear. When I create a Sales Invoice, the invoice has a customer associated with it. Within the item details there is an accounting details section that has an ‘Income Account’ that I could specify. Currently, this is set by item default. (or possibly Company settings, I’m not sure about this)
But, my business case scenario is that I want the Income Account to be determined by the Customer.
The screengrab and answer you provided refers to Account Receivable and not Income Account. The Accounting portion of the Customer Doc requires a Receivable account type.
we have the same use case, where the revenue when selling item I1 in country C1 will go to income account A1, while when selling the same item to another customer in country C2, it will need to be booked against income account A2. So far, we have only figured how to set the default income account per item, but not per customer.
Have you considered using a custom script? Something like
frappe.ui.form.on('Sales Invoice',
{
refresh: function(frm) {
frm.add_custom_button( __("Apply country-wise income account"), function()
{
var items = frm.doc.items;
var income_account = "Revenue EU"; // valid income account
if (frm.doc.currency == "CHF") {
income_account = "Revenue CH"; // valid income account
}
items.forEach(function(entry) {
if (entry.income_account != null) {
frappe.model.set_value(entry.doctype, entry.name, "income_account", income_account);
}
});
});
}
});
This would be based on the sales invoice currency, a lookup on a field on the customer could be easily implemented.