Interested in this too!
Has any progress been made on the matter?
EDIT
I wrote a script for this. Please adapt depending on your own accounts. You need to add a button from Customize Form > Expense Claim. You will see wierd things going on once you enter the expense, just save the form and everything will be back to normal again.
/*
Expense Claim Script
--------------------
What this does:
* Handles click on "Add expense" button:
* Adds 1 line for the expense without VAT
* Adds 1 line for the VAT
*/
frappe.ui.form.on("Expense Claim", {
refresh: function (frm) {
frm.add = function (cost, expenseDate, expenseDescription, expenseAccount, VATtype, VATaccountHead, VATrate, VATdescription) {
var a = cost*(1-VATrate/100);
var expenseCost = Math.round(a * 100 + Number.EPSILON) / 100;
var VATcost = cost-expenseCost ;
var expense = frm.add_child("expenses");
frappe.model.set_value(expense.doctype, expense.name, "expense_date", expenseDate);
frappe.model.set_value(expense.doctype, expense.name, "description", expenseDescription);
frappe.model.set_value(expense.doctype, expense.name, "expense_type", expenseAccount);
frappe.model.set_value(expense.doctype, expense.name, "default_account", expenseAccount);
frappe.model.set_value(expense.doctype, expense.name, "claim_amount", expenseCost);
frappe.model.set_value(expense.doctype, expense.name, "sanctioned_amount", expenseCost);
var taxes = frm.add_child("expenses");
frappe.model.set_value(taxes.doctype, taxes.name, "expense_date", expenseDate);
frappe.model.set_value(taxes.doctype, taxes.name, "expense_type", VATtype);
frappe.model.set_value(taxes.doctype, taxes.name, "default_account", VATaccountHead);
frappe.model.set_value(taxes.doctype, taxes.name, "description", VATdescription);
frappe.model.set_value(taxes.doctype, taxes.name, "claim_amount", VATcost);
frappe.model.set_value(taxes.doctype, taxes.name, "sanctioned_amount", VATcost);
frm.refresh_field("expenses");
}
},
add_expense: function (frm) {
frappe.prompt([{
'fieldname': 'expenseDate',
'fieldtype': 'Date',
'label': 'Expense Date',
'reqd': 1,
'default': 0,
},{
'fieldname': 'cost',
'fieldtype': 'Currency',
'label': 'Expense Cost',
'reqd': 1,
'default': 0,
},{
'fieldname': 'vat',
'fieldtype': 'Select',
'options':
'VAT 0% for investments and other expenses\n' +
'VAT 2.5% for investments and other expenses\n' +
'VAT 3.7% for investments and other expenses\n' +
'VAT 7.7% for investments and other expenses\n' +
'VAT 0% for materials and services\n' +
'VAT 2.5% for materials and services\n' +
'VAT 3.7% for materials and services\n' +
'VAT 7.7% for materials and services',
'label': 'VAT',
'reqd': 1,
},{
'fieldname': 'expenseAccount',
'fieldtype': 'Link',
'label': 'Expense Account',
'options': 'Expense Claim Type',
'reqd': 1,
'default': 0,
},{
'fieldname': 'expenseDescription',
'fieldtype': 'Small Text',
'label': 'Description',
'reqd': 1,
'default': 0,
}],
function (values) {
console.log(values);
var VATtype;
var VATaccountHead;
var VATrate;
var VATdescription;
switch (values.vat){
case 'VAT 0% for investments and other expenses':
VATtype= '1171 - VAT on Investments and other Expenses - AMF';
VATaccountHead = '8911 - VAT account 1171 for Expense Claim - AMF';
VATdescription = 'VAT 0%';
VATrate = 0;
break;
case 'VAT 2.5% for investments and other expenses':
VATtype= '1171 - VAT on Investments and other Expenses - AMF';
VATaccountHead = '8911 - VAT account 1171 for Expense Claim - AMF';
VATdescription = 'VAT 2.5%';
VATrate = 2.5;
break;
case 'VAT 3.7% for investments and other expenses':
VATtype= '1171 - VAT on Investments and other Expenses - AMF';
VATaccountHead = '8911 - VAT account 1171 for Expense Claim - AMF';
VATdescription = 'VAT 3.7%';
VATrate = 3.7;
break;
case 'VAT 7.7% for investments and other expenses':
VATtype= '1171 - VAT on Investments and other Expenses - AMF';
VATaccountHead = '8911 - VAT account 1171 for Expense Claim - AMF';
VATdescription = 'VAT 7.7%';
VATrate = 7.7;
break;
case 'VAT 0% for materials and services':
VATtype= '1170 - VAT on Materials and Services - AMF';
VATaccountHead = '8910 - VAT account 1170 for Expense Claim - AMF';
VATdescription = 'VAT 0%';
VATrate = 0;
break;
case 'VAT 2.5% for materials and services':
VATtype= '1170 - VAT on Materials and Services - AMF';
VATaccountHead = '8910 - VAT account 1170 for Expense Claim - AMF';
VATdescription = 'VAT 2.5%';
VATrate = 2.5;
break;
case 'VAT 3.7% for investments and other expenses':
VATtype= '1170 - VAT on Materials and Services - AMF';
VATaccountHead = '8910 - VAT account 1170 for Expense Claim - AMF';
VATdescription = 'VAT 3.7%';
VATrate = 3.7;
break;
case 'VAT 7.7% for materials and services':
VATtype= '1170 - VAT on Materials and Services - AMF';
VATaccountHead = '8910 - VAT account 1170 for Expense Claim - AMF';
VATdescription = 'VAT 7.7%';
VATrate = 7.7;
break;
}
frm.add(values.cost, values.expenseDate, values.expenseDescription, values.expenseAccount, VATtype, VATaccountHead, VATrate, VATdescription);
},
'Expense Entry',
'Add',
);
},
});
Current workspace:
ERPNext: v11.1.39 (master)
ERPNext Support: v0.0.1 (master)
Frappe Framework: v11.1.36 (master)